Commit 6f7a2044 authored by Alexandre Julliard's avatar Alexandre Julliard

Added SYSDEPS_GetUnixTid to return the Unix thread id to send to the

server.
parent b2d39ea5
......@@ -13249,8 +13249,10 @@ fi
for ac_func in \
_lwp_create \
_lwp_self \
_pclose \
_popen \
_snprintf \
......
......@@ -943,6 +943,7 @@ dnl **** Check for functions ****
AC_FUNC_ALLOCA()
AC_CHECK_FUNCS(\
_lwp_create \
_lwp_self \
_pclose \
_popen \
_snprintf \
......
......@@ -677,6 +677,9 @@
/* Define to 1 if you have the `_lwp_create' function. */
#undef HAVE__LWP_CREATE
/* Define to 1 if you have the `_lwp_self' function. */
#undef HAVE__LWP_SELF
/* Define to 1 if you have the `_pclose' function. */
#undef HAVE__PCLOSE
......
......@@ -147,6 +147,7 @@ extern TEB *THREAD_IdToTEB( DWORD id );
/* scheduler/sysdeps.c */
extern int SYSDEPS_SpawnThread( TEB *teb );
extern void SYSDEPS_SetCurThread( TEB *teb );
extern int SYSDEPS_GetUnixTid(void);
extern void SYSDEPS_InitErrno(void);
extern void DECLSPEC_NORETURN SYSDEPS_ExitThread( int status );
extern void DECLSPEC_NORETURN SYSDEPS_AbortThread( int status );
......
......@@ -694,7 +694,7 @@ void CLIENT_InitThread(void)
SERVER_START_REQ( init_thread )
{
req->unix_pid = getpid();
req->unix_tid = -1;
req->unix_tid = SYSDEPS_GetUnixTid();
req->teb = teb;
req->entry = teb->entry_point;
req->reply_fd = reply_pipe[1];
......
......@@ -317,6 +317,25 @@ void SYSDEPS_AbortThread( int status )
_exit( status );
}
/***********************************************************************
* SYSDEPS_GetUnixTid
*
* Get the Unix tid of the current thread.
*/
int SYSDEPS_GetUnixTid(void)
{
#ifdef HAVE__LWP_SELF
return _lwp_self();
#elif defined(__linux__) && defined(__i386__)
int ret;
__asm__("int $0x80" : "=a" (ret) : "0" (224) /* SYS_gettid */);
if (ret < 0) ret = -1;
return ret;
#else
return -1;
#endif
}
/* default errno before threading is initialized */
static int *default_errno_location(void)
......
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