| 
																	
																	
																		
																	
																	
																 | 
																@@ -73,6 +73,18 @@ static BOOL (WINAPI *cond_wait)(pthread_cond_t *cond, pthread_mutex_t *mutex, | 
															
														
														
													
														
															
																 | 
																 | 
																#define cond_broadcast WakeAllConditionVariable | 
																 | 
																 | 
																#define cond_broadcast WakeAllConditionVariable | 
															
														
														
													
														
															
																 | 
																 | 
																#define cond_signal    WakeConditionVariable | 
																 | 
																 | 
																#define cond_signal    WakeConditionVariable | 
															
														
														
													
														
															
																 | 
																 | 
																#define cond_wait      SleepConditionVariableCS | 
																 | 
																 | 
																#define cond_wait      SleepConditionVariableCS | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#define CreateEvent(a, reset, init, name)                   \ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    CreateEventEx(a, name,                                  \ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                  (reset ? CREATE_EVENT_MANUAL_RESET : 0) | \ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                  (init ? CREATE_EVENT_INITIAL_SET : 0),    \ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                  EVENT_ALL_ACCESS) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// CreateSemaphoreExA seems to be desktop-only, but as long as we don't | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// use named semaphores, it doesn't matter if we use the W version. | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#define CreateSemaphore(a, b, c, d) \ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    CreateSemaphoreExW(a, b, c, d, 0, SEMAPHORE_ALL_ACCESS) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#define InitializeCriticalSection(x) InitializeCriticalSectionEx(x, 0, 0) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#define WaitForSingleObject(a, b) WaitForSingleObjectEx(a, b, FALSE) | 
															
														
														
													
														
															
																 | 
																 | 
																#endif | 
																 | 
																 | 
																#endif | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																static unsigned __stdcall attribute_align_arg win32thread_worker(void *arg) | 
																 | 
																 | 
																static unsigned __stdcall attribute_align_arg win32thread_worker(void *arg) | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |