Merge branch 'sp/push-sideband'
[gitweb.git] / compat / win32 / pthread.h
index b8e1bcb046490d4981fc5af4413104aa5ee76dee..c72f100f40ce2ab9ae7abead730ed00c2a461fbf 100644 (file)
  * See also: http://www.cse.wustl.edu/~schmidt/win32-cv-1.html
  */
 typedef struct {
-       volatile LONG waiters;
+       LONG waiters;
+       int was_broadcast;
+       CRITICAL_SECTION waiters_lock;
        HANDLE sema;
+       HANDLE continue_broadcast;
 } pthread_cond_t;
 
 extern int pthread_cond_init(pthread_cond_t *cond, const void *unused);
-
 extern int pthread_cond_destroy(pthread_cond_t *cond);
-
 extern int pthread_cond_wait(pthread_cond_t *cond, CRITICAL_SECTION *mutex);
-
 extern int pthread_cond_signal(pthread_cond_t *cond);
+extern int pthread_cond_broadcast(pthread_cond_t *cond);
 
 /*
  * Simple thread creation implementation using pthread API