[vlc-commits] commit: Win32(core): do not duplicate handle (Erwan Tulou )

git at videolan.org git at videolan.org
Thu Jun 10 23:25:27 CEST 2010


vlc | branch: master | Erwan Tulou <erwan10 at videolan.org> | Wed Feb 10 13:19:42 2010 +0100| [afe774e0b19c7dcad8d0ae248480df1b0660a380] | committer: Erwan Tulou 

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)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=afe774e0b19c7dcad8d0ae248480df1b0660a380
---

 src/win32/thread.c |   10 +---------
 1 files changed, 1 insertions(+), 9 deletions(-)

diff --git a/src/win32/thread.c b/src/win32/thread.c
index b2e939d..1d25b90 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));



More information about the vlc-commits mailing list