27 #include <sys/timeb.h>
43 CONDITION_VARIABLE cond;
44 #elif YAZ_POSIX_THREADS
53 InitializeConditionVariable(&(*p)->cond);
54 #elif YAZ_POSIX_THREADS
56 pthread_cond_init(&(*p)->cond, 0);
67 #elif YAZ_POSIX_THREADS
68 pthread_cond_destroy(&(*p)->cond);
81 struct timeval tval_now;
86 sec = abstime->tv_sec - tval_now.tv_sec;
87 msec = (abstime->tv_usec - tval_now.tv_usec) / 1000;
88 v = SleepConditionVariableCS(&p->cond, &m->handle, sec*1000 + msec);
91 v = SleepConditionVariableCS(&p->cond, &m->handle, INFINITE);
93 #elif YAZ_POSIX_THREADS
97 s.tv_sec = abstime->tv_sec;
98 s.tv_nsec = abstime->tv_usec * 1000;
99 return pthread_cond_timedwait(&p->cond, &m->handle, &s);
102 return pthread_cond_wait(&p->cond, &m->handle);
111 WakeConditionVariable(&p->cond);
113 #elif YAZ_POSIX_THREADS
114 return pthread_cond_signal(&p->cond);
123 WakeAllConditionVariable(&p->cond);
125 #elif YAZ_POSIX_THREADS
126 return pthread_cond_broadcast(&p->cond);
void yaz_cond_destroy(YAZ_COND *p)
destroys condition variable
void yaz_cond_create(YAZ_COND *p)
creates condition variable
int yaz_cond_signal(YAZ_COND p)
unblock one thread waiting for block
int yaz_cond_broadcast(YAZ_COND p)
unblock all threads waiting for block
int yaz_cond_wait(YAZ_COND p, YAZ_MUTEX m, const struct timeval *abstime)
waits for condition
Header for errno utilities.
int yaz_gettimeofday(struct timeval *tval)
gettimeofday
Header for gettimeofday wrapper.
Declares internal definitions of for Mutex functions.
Header for Mutex functions.
struct yaz_cond * YAZ_COND
YAZ condition opaque pointer.
Header for Nibble Memory functions.
Header for memory handling functions.