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.
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