+/** \brief creates condition variable
+ \param p reference to condition handle
+
+ Upon successful completion *p holds the condition handle; *p = 0
+ on error.
+*/
+void yaz_cond_create(YAZ_COND *p);
+
+/** \brief destroys condition variable
+ \param p reference to condition handle
+
+ Upon completion *p holds 0.
+*/
+void yaz_cond_destroy(YAZ_COND *p);
+
+/** \brief waits for condition
+ \param p condition variable handle
+ \param m mutex
+ \param abstime wait until this time; 0 for indefinite wait
+
+ Semantics like pthread_cond_wait.
+*/
+int yaz_cond_wait(YAZ_COND p, YAZ_MUTEX m, const struct timespec *abstime);
+
+/** \brief unblock one thread waiting for block
+ \param p condition variable handle
+*/
+int yaz_cond_signal(YAZ_COND p);
+
+/** \brief unblock all threads waiting for block
+ \param p condition variable handle
+*/
+int yaz_cond_broadcast(YAZ_COND p);
+