From: Erwan Tulou Date: Wed, 10 Feb 2010 12:19:42 +0000 (+0100) Subject: Win32(core): do not duplicate handle X-Git-Tag: 1.2.0-pre1~6245 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=afe774e0b19c7dcad8d0ae248480df1b0660a380;p=vlc 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) --- 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));