diff --git a/compat/w32pthreads.h b/compat/w32pthreads.h index 4b6924f4af..afe5b33594 100644 --- a/compat/w32pthreads.h +++ b/compat/w32pthreads.h @@ -62,11 +62,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) { @@ -268,11 +275,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 }