summaryrefslogtreecommitdiff
path: root/debian/patches/hurd_kfreebsd_thread_native_id.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/hurd_kfreebsd_thread_native_id.diff')
-rw-r--r--debian/patches/hurd_kfreebsd_thread_native_id.diff34
1 files changed, 34 insertions, 0 deletions
diff --git a/debian/patches/hurd_kfreebsd_thread_native_id.diff b/debian/patches/hurd_kfreebsd_thread_native_id.diff
new file mode 100644
index 0000000..1b02cf7
--- /dev/null
+++ b/debian/patches/hurd_kfreebsd_thread_native_id.diff
@@ -0,0 +1,34 @@
+--- a/Include/pythread.h
++++ b/Include/pythread.h
+@@ -26,7 +26,7 @@ PyAPI_FUNC(unsigned long) PyThread_start
+ PyAPI_FUNC(void) _Py_NO_RETURN PyThread_exit_thread(void);
+ PyAPI_FUNC(unsigned long) PyThread_get_thread_ident(void);
+
+-#if defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(_WIN32) || defined(_AIX)
++#if defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(_WIN32) || defined(_AIX) || defined(__GNU__)
+ #define PY_HAVE_THREAD_NATIVE_ID
+ PyAPI_FUNC(unsigned long) PyThread_get_thread_native_id(void);
+ #endif
+--- a/Python/thread_pthread.h
++++ b/Python/thread_pthread.h
+@@ -22,6 +22,9 @@
+ # include <sys/thread.h> /* thread_self() */
+ #elif defined(__NetBSD__)
+ # include <lwp.h> /* _lwp_self() */
++#elif defined(__GNU__) || defined(__FreeBSD_kernel__)
++# include <mach.h> /* mach_thread_self(), mach_task_self(),
++ mach_port_deallocate() */
+ #endif
+
+ /* The POSIX spec requires that use of pthread_attr_setstacksize
+@@ -343,6 +346,10 @@ PyThread_get_thread_native_id(void)
+ #elif defined(__NetBSD__)
+ lwpid_t native_id;
+ native_id = _lwp_self();
++#elif defined(__GNU__) || defined(__FreeBSD_kernel__)
++ mach_port_t native_id;
++ native_id = mach_thread_self();
++ mach_port_deallocate(mach_task_self(), mach_thread_self());
+ #endif
+ return (unsigned long) native_id;
+ }