#include #include #include void _procsleep(_Procrend *rend) { //print("sleep %p %d\n", rend, getpid()); pthread_cond_init(&rend->cond, 0); rend->asleep = 1; while(rend->asleep) pthread_cond_wait(&rend->cond, &rend->l->mutex); pthread_cond_destroy(&rend->cond); } void _procwakeup(_Procrend *rend) { //print("wakeup %p\n", rend); rend->asleep = 0; pthread_cond_signal(&rend->cond); }