X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Fcommon%2Fthread-id.h;h=cb0d903748b1d0ddf2fd6b7c8a219d10f917896c;hp=56835e3659c8b7b3e59f2aa1d8922ba602a3df90;hb=HEAD;hpb=b83b3590caf8ddd0fb1393b0d8378f916c8bf831 diff --git a/tests/common/thread-id.h b/tests/common/thread-id.h index 56835e3..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 @@ -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