X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Fcommon%2Fthread-id.h;h=cb0d903748b1d0ddf2fd6b7c8a219d10f917896c;hp=04db5bb5aa3d25fdc8120d5edc0053e6f6f409d6;hb=HEAD;hpb=6bbcdc421d5614038a1dc8c5645c334372762087 diff --git a/tests/common/thread-id.h b/tests/common/thread-id.h index 04db5bb..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,6 +40,33 @@ 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(); +} +#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