mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-08 07:42:09 +03:00
add gettid function
this is a prerequisite for addition of other interfaces that use kernel tids, including futex and SIGEV_THREAD_ID. there is some ambiguity as to whether the semantic return type should be int or pid_t. either way, futex API imposes a contract that the values fit in int (excluding some upper reserved bits). glibc used pid_t, so in the interest of not having gratuitous mismatch (the underlying types are the same anyway), pid_t is used here as well. while conceptually this is a syscall, the copy stored in the thread structure is always valid in all contexts where it's valid to call libc functions, so it's used to avoid the syscall.
This commit is contained in:
parent
22359b54ab
commit
d49cf07541
@ -190,6 +190,7 @@ int syncfs(int);
|
||||
int euidaccess(const char *, int);
|
||||
int eaccess(const char *, int);
|
||||
ssize_t copy_file_range(int, off_t *, int, off_t *, size_t, unsigned);
|
||||
pid_t gettid(void);
|
||||
#endif
|
||||
|
||||
#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
|
||||
|
8
src/linux/gettid.c
Normal file
8
src/linux/gettid.c
Normal file
@ -0,0 +1,8 @@
|
||||
#define _GNU_SOURCE
|
||||
#include <unistd.h>
|
||||
#include "pthread_impl.h"
|
||||
|
||||
pid_t gettid(void)
|
||||
{
|
||||
return __pthread_self()->tid;
|
||||
}
|
Loading…
Reference in New Issue
Block a user