2004-03-25 23:03:57 +00:00
|
|
|
#include <u.h>
|
2003-10-01 02:53:00 +00:00
|
|
|
#include <pthread.h>
|
2004-03-25 23:03:57 +00:00
|
|
|
#include <libc.h>
|
2003-09-30 17:47:41 +00:00
|
|
|
|
2004-09-17 03:34:32 +00:00
|
|
|
void
|
|
|
|
|
_procsleep(_Procrend *rend)
|
2003-09-30 17:47:41 +00:00
|
|
|
{
|
2004-09-17 03:34:32 +00:00
|
|
|
//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);
|
2003-09-30 17:47:41 +00:00
|
|
|
}
|
|
|
|
|
|
2004-09-17 03:34:32 +00:00
|
|
|
void
|
|
|
|
|
_procwakeup(_Procrend *rend)
|
2003-09-30 17:47:41 +00:00
|
|
|
{
|
2004-09-17 03:34:32 +00:00
|
|
|
//print("wakeup %p\n", rend);
|
|
|
|
|
rend->asleep = 0;
|
|
|
|
|
pthread_cond_signal(&rend->cond);
|
2003-09-30 17:47:41 +00:00
|
|
|
}
|
|
|
|
|
|