X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Fcommon%2Fthread-id.h;h=56835e3659c8b7b3e59f2aa1d8922ba602a3df90;hp=47a74570efa23c1868ac7a6d426878de05ff3ce2;hb=b83b3590caf8ddd0fb1393b0d8378f916c8bf831;hpb=9ba261bd496f2dfac38a16e341259553335dd165 diff --git a/tests/common/thread-id.h b/tests/common/thread-id.h index 47a7457..56835e3 100644 --- a/tests/common/thread-id.h +++ b/tests/common/thread-id.h @@ -17,10 +17,18 @@ * provided the above notices are retained, and a notice that the code was * modified is included with the above copyright notice. */ +#include + #ifdef __linux__ # include -# if defined(_syscall0) +# if defined(HAVE_GETTID) +/* + * Do not redefine gettid() as it is already included + * in bionic through . Some other libc + * may also already contain an implementation of gettid. + */ +# elif defined(_syscall0) _syscall0(pid_t, gettid) # elif defined(__NR_gettid) static inline pid_t gettid(void) @@ -42,6 +50,14 @@ unsigned long urcu_get_thread_id(void) { return (unsigned long) pthread_getthreadid_np(); } +#elif defined(__sun__) || defined(__APPLE__) +#include + +static inline +unsigned long urcu_get_thread_id(void) +{ + return (unsigned long) pthread_self(); +} #else # warning "use pid as thread ID" static inline