X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Fcommon%2Fthread-id.h;h=cb0d903748b1d0ddf2fd6b7c8a219d10f917896c;hp=690fdf009677f714918f738e755c53584e73c305;hb=HEAD;hpb=09bdef43191a9de4bcc770ad680fa20776a8f683 diff --git a/tests/common/thread-id.h b/tests/common/thread-id.h index 690fdf0..575acaf 100644 --- a/tests/common/thread-id.h +++ b/tests/common/thread-id.h @@ -1,23 +1,13 @@ +// SPDX-FileCopyrightText: 2013 Mathieu Desnoyers +// +// SPDX-License-Identifier: LicenseRef-Boehm-GC + #ifndef _TEST_THREAD_ID_H #define _TEST_THREAD_ID_H /* - * thread-id.h - * * Userspace RCU library - thread ID - * - * Copyright 2013 - Mathieu Desnoyers - * - * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED - * OR IMPLIED. ANY USE IS AT YOUR OWN RISK. - * - * Permission is hereby granted to use or copy this program - * for any purpose, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * 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 @@ -50,7 +40,7 @@ unsigned long urcu_get_thread_id(void) { return (unsigned long) pthread_getthreadid_np(); } -#elif defined(__sun__) +#elif defined(__sun__) || defined(__APPLE__) #include static inline @@ -58,6 +48,25 @@ unsigned long urcu_get_thread_id(void) { return (unsigned long) pthread_self(); } +#elif defined(__CYGWIN__) +#include + +extern unsigned long pthread_getsequence_np(pthread_t *); + +static inline +unsigned long urcu_get_thread_id(void) +{ + pthread_t thr = pthread_self(); + return pthread_getsequence_np(&thr); +} +#elif defined(__OpenBSD__) +#include + +static inline +unsigned long urcu_get_thread_id(void) +{ + return (unsigned long) getthrid(); +} #else # warning "use pid as thread ID" static inline