} 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)
{
(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
}