[PATCH 1/2] server: prefer a portable function to get thread id
Jan Beich
jbeich at tormail.org
Thu Aug 16 14:04:51 CDT 2012
---
configure | 1 +
configure.ac | 1 +
dlls/ntdll/server.c | 7 ++++++-
include/config.h.in | 3 +++
4 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index 86c9698..12c99e8 100755
--- a/configure
+++ b/configure
@@ -10611,6 +10611,7 @@ LIBS="$LIBS $LIBPTHREAD"
for ac_func in \
pthread_attr_get_np \
pthread_getattr_np \
+ pthread_getthreadid_np \
pthread_get_stackaddr_np \
pthread_get_stacksize_np
do :
diff --git a/configure.ac b/configure.ac
index c80fd8a..c9e81fe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1471,6 +1471,7 @@ dnl **** Check for pthread functions ****
WINE_CHECK_LIB_FUNCS(\
pthread_attr_get_np \
pthread_getattr_np \
+ pthread_getthreadid_np \
pthread_get_stackaddr_np \
pthread_get_stacksize_np,
[$LIBPTHREAD])
diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
index 392668d..cc49bad 100644
--- a/dlls/ntdll/server.c
+++ b/dlls/ntdll/server.c
@@ -28,6 +28,9 @@
#endif
#include <errno.h>
#include <fcntl.h>
+#ifdef HAVE_PTHREAD_NP_H
+# include <pthread_np.h>
+#endif
#include <signal.h>
#include <stdarg.h>
#include <stdio.h>
@@ -944,7 +947,9 @@ static void send_server_task_port(void)
static int get_unix_tid(void)
{
int ret = -1;
-#ifdef linux
+#ifdef HAVE_PTHREAD_GETTHREADID_NP
+ ret = pthread_getthreadid_np();
+#elif defined(linux)
ret = syscall( SYS_gettid );
#elif defined(__sun)
ret = pthread_self();
diff --git a/include/config.h.in b/include/config.h.in
index 844600c..e9416a4 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -632,6 +632,9 @@
/* Define to 1 if you have the `pthread_getattr_np' function. */
#undef HAVE_PTHREAD_GETATTR_NP
+/* Define to 1 if you have the `pthread_getthreadid_np' function. */
+#undef HAVE_PTHREAD_GETTHREADID_NP
+
/* Define to 1 if you have the `pthread_get_stackaddr_np' function. */
#undef HAVE_PTHREAD_GET_STACKADDR_NP
More information about the wine-patches
mailing list