+# if USE_WIN32_CONDITION_VARIABLES
+ SleepConditionVariableCS(&_native_handle, &mutex_native_handle, INFINITE);
+# else
+ InterlockedIncrement(&cWaiters);
+ LeaveCriticalSection(&mutex_native_handle);
+ WaitForSingleObject(hEvent, INFINITE);
+ EnterCriticalSection(&mutex_native_handle);
+ InterlockedDecrement(&cWaiters);
+# endif