aboutsummaryrefslogtreecommitdiffstats
path: root/compat
diff options
context:
space:
mode:
authorSeija Kijin <doremylover123@gmail.com>2023-01-03 16:20:19 +0000
committerJunio C Hamano <gitster@pobox.com>2023-01-04 15:39:47 +0900
commit238a9dfe86d18214bc0b8be079feee01a2fdc407 (patch)
tree70de32572714999b83f062fd965e00cf173e5a7f /compat
parent23a6a12dfa317e48627c8fec72ee80151276bad6 (diff)
downloadgit-238a9dfe86d18214bc0b8be079feee01a2fdc407.tar.gz
win32: close handles of threads that have been joined
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'compat')
-rw-r--r--compat/win32/pthread.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/compat/win32/pthread.c b/compat/win32/pthread.c
index cf53bc61d8..85f8f7920c 100644
--- a/compat/win32/pthread.c
+++ b/compat/win32/pthread.c
@@ -42,10 +42,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());
}
}