]> Cypherpunks.ru repositories - gostls13.git/blobdiff - misc/cgo/test/cthread_windows.c
runtime/cgo: store M for C-created thread in pthread key
[gostls13.git] / misc / cgo / test / cthread_windows.c
index 3a62ddd3730f43b3aa6fafaf7466e35de2539d4f..4e52209dee1d1812ecdc9fcc25474364268198b2 100644 (file)
@@ -35,3 +35,25 @@ doAdd(int max, int nthread)
                CloseHandle((HANDLE)thread_id[i]);
        }
 }
+
+__stdcall
+static unsigned int
+goDummyCallbackThread(void* p)
+{
+       int i, max;
+
+       max = *(int*)p;
+       for(i=0; i<max; i++)
+               goDummy();
+       return 0;
+}
+
+int
+callGoInCThread(int max)
+{
+       uintptr_t thread_id;
+       thread_id = _beginthreadex(0, 0, goDummyCallbackThread, &max, 0, 0);
+       WaitForSingleObject((HANDLE)thread_id, INFINITE);
+       CloseHandle((HANDLE)thread_id);
+       return max;
+}