]> granicus.if.org Git - openjpeg/commitdiff
[Win32] Use _beginthreadex instead of CreateThread()
authorEven Rouault <even.rouault@spatialys.com>
Thu, 11 Aug 2016 19:50:46 +0000 (21:50 +0200)
committerEven Rouault <even.rouault@spatialys.com>
Thu, 11 Aug 2016 19:59:28 +0000 (21:59 +0200)
src/lib/openjp2/thread.c

index b2f8b5b209dcd6d118be320c5ebe21530a81ea88..59b5d87ee9a9e059349f86c40991a9f96bf3183e 100644 (file)
@@ -44,6 +44,7 @@
 #endif
 
 #include <windows.h>
+#include <process.h>
 
 OPJ_BOOL OPJ_CALLCONV opj_has_thread_support(void)
 {
@@ -224,11 +225,11 @@ struct opj_thread_t
     HANDLE hThread;
 };
 
-static DWORD WINAPI opj_thread_callback_adapter( void *info )
+unsigned int __stdcall opj_thread_callback_adapter( void *info )
 {
     opj_thread_t* thread = (opj_thread_t*) info;
     HANDLE hEvent = NULL;
-    
+
     thread->thread_fn( thread->user_data );
 
     /* Free the handle possible allocated by a cond */
@@ -258,7 +259,6 @@ static DWORD WINAPI opj_thread_callback_adapter( void *info )
 opj_thread_t* opj_thread_create( opj_thread_fn thread_fn, void* user_data )
 {
     opj_thread_t* thread;
-    DWORD nThreadId = 0;
 
     assert( thread_fn );
 
@@ -268,8 +268,8 @@ opj_thread_t* opj_thread_create( opj_thread_fn thread_fn, void* user_data )
     thread->thread_fn = thread_fn;
     thread->user_data = user_data;
 
-    thread->hThread = CreateThread( NULL, 0, opj_thread_callback_adapter, thread,
-                                    0, &nThreadId );
+    thread->hThread = (HANDLE)_beginthreadex(NULL, 0,
+                                    opj_thread_callback_adapter, thread, 0, NULL);
 
     if( thread->hThread == NULL )
     {