Commit 0b9956e9 authored by David Carlier's avatar David Carlier Committed by Victor Stinner

bpo-37087: Adding native ID support for OpenBSD (GH-13654)

parent 141da44b
...@@ -106,7 +106,7 @@ This module defines the following constants and functions: ...@@ -106,7 +106,7 @@ This module defines the following constants and functions:
Its value may be used to uniquely identify this particular thread system-wide Its value may be used to uniquely identify this particular thread system-wide
(until the thread terminates, after which the value may be recycled by the OS). (until the thread terminates, after which the value may be recycled by the OS).
.. availability:: Windows, FreeBSD, Linux, macOS. .. availability:: Windows, FreeBSD, Linux, macOS, OpenBSD.
.. versionadded:: 3.8 .. versionadded:: 3.8
......
...@@ -82,7 +82,7 @@ This module defines the following functions: ...@@ -82,7 +82,7 @@ This module defines the following functions:
Its value may be used to uniquely identify this particular thread system-wide Its value may be used to uniquely identify this particular thread system-wide
(until the thread terminates, after which the value may be recycled by the OS). (until the thread terminates, after which the value may be recycled by the OS).
.. availability:: Windows, FreeBSD, Linux, macOS. .. availability:: Windows, FreeBSD, Linux, macOS, OpenBSD.
.. versionadded:: 3.8 .. versionadded:: 3.8
...@@ -355,7 +355,7 @@ since it is impossible to detect the termination of alien threads. ...@@ -355,7 +355,7 @@ since it is impossible to detect the termination of alien threads.
system-wide) from the time the thread is created until the thread system-wide) from the time the thread is created until the thread
has been terminated. has been terminated.
.. availability:: Windows, FreeBSD, Linux, macOS. .. availability:: Require :func:`get_native_id` function.
.. versionadded:: 3.8 .. versionadded:: 3.8
......
...@@ -26,7 +26,7 @@ PyAPI_FUNC(unsigned long) PyThread_start_new_thread(void (*)(void *), void *); ...@@ -26,7 +26,7 @@ PyAPI_FUNC(unsigned long) PyThread_start_new_thread(void (*)(void *), void *);
PyAPI_FUNC(void) _Py_NO_RETURN PyThread_exit_thread(void); PyAPI_FUNC(void) _Py_NO_RETURN PyThread_exit_thread(void);
PyAPI_FUNC(unsigned long) PyThread_get_thread_ident(void); PyAPI_FUNC(unsigned long) PyThread_get_thread_ident(void);
#if defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__) || defined(_WIN32) #if defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(_WIN32)
#define PY_HAVE_THREAD_NATIVE_ID #define PY_HAVE_THREAD_NATIVE_ID
PyAPI_FUNC(unsigned long) PyThread_get_thread_native_id(void); PyAPI_FUNC(unsigned long) PyThread_get_thread_native_id(void);
#endif #endif
......
Add native thread ID (TID) support to OpenBSD.
\ No newline at end of file
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
# include <sys/syscall.h> /* syscall(SYS_gettid) */ # include <sys/syscall.h> /* syscall(SYS_gettid) */
#elif defined(__FreeBSD__) #elif defined(__FreeBSD__)
# include <pthread_np.h> /* pthread_getthreadid_np() */ # include <pthread_np.h> /* pthread_getthreadid_np() */
#elif defined(__OpenBSD__)
# include <unistd.h> /* getthrid() */
#endif #endif
/* The POSIX spec requires that use of pthread_attr_setstacksize /* The POSIX spec requires that use of pthread_attr_setstacksize
...@@ -323,6 +325,9 @@ PyThread_get_thread_native_id(void) ...@@ -323,6 +325,9 @@ PyThread_get_thread_native_id(void)
#elif defined(__FreeBSD__) #elif defined(__FreeBSD__)
int native_id; int native_id;
native_id = pthread_getthreadid_np(); native_id = pthread_getthreadid_np();
#elif defined(__OpenBSD__)
pid_t native_id;
native_id = getthrid();
#endif #endif
return (unsigned long) native_id; return (unsigned long) native_id;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment