Jan Beich : ntdll: Prefer a portable function to get thread id.
Alexandre Julliard
julliard at winehq.org
Fri Aug 17 10:37:46 CDT 2012
Module: wine
Branch: master
Commit: fa4e97f4547d7478f42cf5702cca1da85fd76b74
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fa4e97f4547d7478f42cf5702cca1da85fd76b74
Author: Jan Beich <jbeich at tormail.org>
Date: Thu Aug 16 19:04:51 2012 +0000
ntdll: Prefer a portable function to get thread id.
---
configure | 1 +
configure.ac | 1 +
dlls/ntdll/server.c | 7 ++++++-
include/config.h.in | 3 +++
4 files changed, 11 insertions(+), 1 deletions(-)
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-cvs
mailing list