From afe774e0b19c7dcad8d0ae248480df1b0660a380 Mon Sep 17 00:00:00 2001 From: Erwan Tulou Date: Wed, 10 Feb 2010 13:19:42 +0100 Subject: [PATCH] Win32(core): do not duplicate handle Unlike _endthread and ExitThread, _endthreadex doesn't close the handle. It is therefore up to the caller to close it. Hence no need for an extra handle duplication (that mostly amounted to a memory leak when the normal path was used, i.e normal return from thread with implicit _endthreadex) --- src/win32/thread.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/win32/thread.c b/src/win32/thread.c index b2e939d0f3..1d25b90320 100644 --- a/src/win32/thread.c +++ b/src/win32/thread.c @@ -553,15 +553,7 @@ int vlc_clone (vlc_thread_t *p_handle, void * (*entry) (void *), void *data, goto error; } - /* Thread closes the handle when exiting, duplicate it here - * to be on the safe side when joining. */ - if (!DuplicateHandle (GetCurrentProcess (), hThread, - GetCurrentProcess (), p_handle, 0, FALSE, - DUPLICATE_SAME_ACCESS)) - { - CloseHandle (hThread); - goto error; - } + *p_handle = hThread; #else vlc_thread_t th = malloc (sizeof (*th)); -- 2.39.2