[PATCH v12 2/2] win32: close handles of threads that have been joined
- From
- Seija Kijin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Dec 25, 2022, 01:40 UTC
- Message-ID
- <fa5cbfa5e0ca86e2143346068c9b99856cdded0c.1671932405.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1406.v12.git.git.1671932405.gitgitgadget@gmail.com>
From: Seija Kijin <doremylover123@gmail.com>
After the thread terminates, the handle to the original thread should be closed.
This change makes win32_pthread_join POSIX compliant.
Signed-off-by: Seija Kijin <doremylover123@gmail.com> --- compat/win32/pthread.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/compat/win32/pthread.c b/compat/win32/pthread.c index 65e15a560d5..83e088dff0a 100644 --- a/compat/win32/pthread.c +++ b/compat/win32/pthread.c @@ -41,10 +41,13 @@ int win32_pthread_join(pthread_t *thread, void **value_ptr) case WAIT_OBJECT_0: if (value_ptr) *value_ptr = thread->arg; + CloseHandle(thread->handle); return 0; case WAIT_ABANDONED: + CloseHandle(thread->handle); return EINVAL; default: + /* the wait failed, so do not detach */ return err_win_to_posix(GetLastError()); } }
-- gitgitgadget