From: Seija Kijin <doremylover123@xxxxxxxxx> After joining threads, the handle to the original thread should be closed as it no longer needs to be open. Signed-off-by: Seija Kijin <doremylover123@xxxxxxxxx> --- compat/win32/pthread.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compat/win32/pthread.c b/compat/win32/pthread.c index 2e7eead42cb..89e89c3fe00 100644 --- a/compat/win32/pthread.c +++ b/compat/win32/pthread.c @@ -42,10 +42,15 @@ int win32_pthread_join(pthread_t *thread, void **value_ptr) case WAIT_OBJECT_0: if (value_ptr) *value_ptr = thread->arg; + /* detach the thread once the join succeeds */ + CloseHandle(thread->handle); return 0; case WAIT_ABANDONED: + /* either thread is not joinable or another thread is + * waiting on this, so do not detatch */ return EINVAL; default: + /* the function failed, so do not detach */ return err_win_to_posix(GetLastError()); } } -- gitgitgadget