|
@@ -61,11 +61,18 @@ typedef struct pthread_cond_t {
|
|
|
} pthread_cond_t;
|
|
|
|
|
|
/* function pointers to conditional variable API on windows 6.0+ kernels */
|
|
|
+#if _WIN32_WINNT < 0x0600
|
|
|
static void (WINAPI *cond_broadcast)(pthread_cond_t *cond);
|
|
|
static void (WINAPI *cond_init)(pthread_cond_t *cond);
|
|
|
static void (WINAPI *cond_signal)(pthread_cond_t *cond);
|
|
|
static BOOL (WINAPI *cond_wait)(pthread_cond_t *cond, pthread_mutex_t *mutex,
|
|
|
DWORD milliseconds);
|
|
|
+#else
|
|
|
+#define cond_init InitializeConditionVariable
|
|
|
+#define cond_broadcast WakeAllConditionVariable
|
|
|
+#define cond_signal WakeConditionVariable
|
|
|
+#define cond_wait SleepConditionVariableCS
|
|
|
+#endif
|
|
|
|
|
|
static unsigned __stdcall attribute_align_arg win32thread_worker(void *arg)
|
|
|
{
|
|
@@ -267,11 +274,6 @@ static void w32thread_init(void)
|
|
|
(void*)GetProcAddress(kernel_dll, "WakeConditionVariable");
|
|
|
cond_wait =
|
|
|
(void*)GetProcAddress(kernel_dll, "SleepConditionVariableCS");
|
|
|
-#else
|
|
|
- cond_init = InitializeConditionVariable;
|
|
|
- cond_broadcast = WakeAllConditionVariable;
|
|
|
- cond_signal = WakeConditionVariable;
|
|
|
- cond_wait = SleepConditionVariableCS;
|
|
|
#endif
|
|
|
|
|
|
}
|