diff mbox series

[v13,2/2] win32: close handles of threads that have been joined

Message ID f126d6416d5eb00f3051c5dfd6f16d013d708caa.1672762819.git.gitgitgadget@gmail.com (mailing list archive)
State Accepted
Commit 238a9dfe86d18214bc0b8be079feee01a2fdc407
Headers show
Series win32: close handles of threads that have been joined | expand

Commit Message

Seija Kijin Jan. 3, 2023, 4:20 p.m. UTC
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 mbox series

Patch

diff --git a/compat/win32/pthread.c b/compat/win32/pthread.c
index cf53bc61d82..85f8f7920ce 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());
 	}
 }