]> Repos - portaudio/commitdiff
ticket #84. Fix for Cygwin. Added a #define called CREATE_THREAD. Cygwin will call...
authorgordon_gidluck <gordon_gidluck@0f58301d-fd10-0410-b4af-bbb618454e57>
Sun, 5 Oct 2008 15:14:25 +0000 (15:14 +0000)
committergordon_gidluck <gordon_gidluck@0f58301d-fd10-0410-b4af-bbb618454e57>
Sun, 5 Oct 2008 15:14:25 +0000 (15:14 +0000)
src/hostapi/wasapi/pa_win_wasapi.cpp

index f13a7f230296c87f606ec1f7505bde967afc1543..ea91eb2b359be0a19139d176230e59e3f3784d45 100644 (file)
@@ -56,6 +56,8 @@
 #include <functiondiscoverykeys.h>  // PKEY_Device_FriendlyName\r
 #endif\r
 \r
+#include <process.h>\r
+\r
 #include "pa_util.h"\r
 #include "pa_allocation.h"\r
 #include "pa_hostapi.h"\r
 #define PORTAUDIO_SHAREMODE     AUDCLNT_SHAREMODE_SHARED\r
 //#define PORTAUDIO_SHAREMODE   AUDCLNT_SHAREMODE_EXCLUSIVE\r
 \r
-\r
+/* use CreateThread for CYGWIN, _beginthreadex for all others */\r
+#ifndef __CYGWIN__\r
+#define CREATE_THREAD (HANDLE) _beginthreadex(NULL, 0, (unsigned (_stdcall *)(void *))ProcThread, (LPVOID) stream, 0, (unsigned *)&stream->dwThreadId)\r
+#else\r
+#define CREATE_THREAD CreateThread(NULL, 0, ProcThread, (LPVOID) stream, 0, &stream->dwThreadId)\r
+#endif\r
 \r
 /* prototypes for functions declared in this file */\r
 \r
@@ -1517,14 +1524,8 @@ static PaError StartStream( PaStream *s )
        }\r
 \r
     // Create a thread for this client.\r
-    stream->hThread = CreateThread(\r
-        NULL,              // no security attribute\r
-        0,                 // default stack size\r
-        ProcThread,\r
-        (LPVOID) stream,    // thread parameter\r
-        0,                 // not suspended\r
-        &stream->dwThreadId);      // returns thread ID\r
-\r
+    stream->hThread = CREATE_THREAD;\r
+        \r
     if (stream->hThread == NULL)\r
         return paUnanticipatedHostError;\r
 \r