Module: wine Branch: master Commit: 74cdb539a4b2e50d169d37b35d0cc9ecc1b2e7bd URL: http://source.winehq.org/git/wine.git/?a=commit;h=74cdb539a4b2e50d169d37b35d...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Oct 29 20:37:43 2008 +0100
ntdll: Store the exit code in the server in RtlExitUserThread.
---
dlls/kernel32/thread.c | 23 ++--------------------- dlls/ntdll/thread.c | 24 ++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/dlls/kernel32/thread.c b/dlls/kernel32/thread.c index bddeba7..b5a3708 100644 --- a/dlls/kernel32/thread.c +++ b/dlls/kernel32/thread.c @@ -152,27 +152,8 @@ HANDLE WINAPI OpenThread( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwTh */ void WINAPI ExitThread( DWORD code ) /* [in] Exit code for this thread */ { - BOOL last; - SERVER_START_REQ( terminate_thread ) - { - /* send the exit code to the server */ - req->handle = GetCurrentThread(); - req->exit_code = code; - wine_server_call( req ); - last = reply->last; - } - SERVER_END_REQ; - - if (last) - { - LdrShutdownProcess(); - exit( code ); - } - else - { - RtlFreeThreadActivationContextStack(); - RtlExitUserThread( code ); - } + RtlFreeThreadActivationContextStack(); + RtlExitUserThread( code ); }
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c index 47e0196..db126bb 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -604,8 +604,28 @@ error: */ void WINAPI RtlExitUserThread( ULONG status ) { - LdrShutdownThread(); - server_exit_thread( status ); + BOOL last; + + SERVER_START_REQ( terminate_thread ) + { + /* send the exit code to the server */ + req->handle = GetCurrentThread(); + req->exit_code = status; + wine_server_call( req ); + last = reply->last; + } + SERVER_END_REQ; + + if (last) + { + LdrShutdownProcess(); + exit( status ); + } + else + { + LdrShutdownThread(); + server_exit_thread( status ); + } }