From: Seija Kijin via GitGitGadget Date: Fri, 23 Dec 2022 19:19:37 GMT Subject: [PATCH v11 2/2] win32: close handles of threads that have been joined Message-ID: In-Reply-To: From: Seija Kijin 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 --- compat/win32/pthread.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/compat/win32/pthread.c b/compat/win32/pthread.c index 65e15a560d5..f63f65c9dfe 100644 --- a/compat/win32/pthread.c +++ b/compat/win32/pthread.c @@ -41,11 +41,15 @@ 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: - return err_win_to_posix(GetLastError()); + /* the wait failed, so do not detach */ + errno = err_win_to_posix(GetLastError()); + return errno; } } -- gitgitgadget