diff options
Diffstat (limited to 'ptw32_threadDestroy.c')
-rw-r--r-- | ptw32_threadDestroy.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ptw32_threadDestroy.c b/ptw32_threadDestroy.c index 560c084..868b3f3 100644 --- a/ptw32_threadDestroy.c +++ b/ptw32_threadDestroy.c @@ -72,8 +72,12 @@ ptw32_threadDestroy (pthread_t thread) (void) pthread_mutex_destroy(&threadCopy.cancelLock); #if ! defined (__MINGW32__) || defined (__MSVCRT__) - /* See documentation for endthread vs endthreadex. */ - if( threadCopy.threadH != 0 ) + /* + * See documentation for endthread vs endthreadex. + * Don't close the Win32 handle of implicit POSIX threads + * because the process may want to call GetExitCodeThread(). + */ + if( threadCopy.threadH != 0 && ! threadCopy.implicit ) { CloseHandle( threadCopy.threadH ); } |