Win32(core): _endthreadex(0) instead of _endthread()
authorErwan Tulou <erwan10@videolan.org>
Wed, 10 Feb 2010 12:15:00 +0000 (13:15 +0100)
committerErwan Tulou <erwan10@videolan.org>
Thu, 10 Jun 2010 21:23:41 +0000 (23:23 +0200)
According to msdn doc, _endthreadex(0) is to be used when thread is
 launched with _beginthreadex().

Note that when returning from the normal path, an implicit _endthreadex is
issued anyway.  It is important to be consistent whatever the path, since
those final functions (_endthread, ExitThread, _endthreadex) don't have
the same deallocation policy.

src/win32/thread.c

index dfeed9a..b2e939d 100644 (file)
@@ -698,7 +698,7 @@ void vlc_testcancel (void)
         for (vlc_cleanup_t *p = nfo->cleaners; p != NULL; p = p->next)
              p->proc (p->data);
 #ifndef UNDER_CE
         for (vlc_cleanup_t *p = nfo->cleaners; p != NULL; p = p->next)
              p->proc (p->data);
 #ifndef UNDER_CE
-        _endthread ();
+        _endthreadex(0);
 #else
         ExitThread(0);
 #endif
 #else
         ExitThread(0);
 #endif