HaikuDepot: notify work status from main window
[haiku.git] / src / libs / compat / freebsd_network / synch.c
blob8f872636baca03379a7e83b83ca2d621941c6ab7
1 /*
2 * Copyright 2009 Colin Günther, coling@gmx.de
3 * All rights reserved. Distributed under the terms of the MIT License.
4 */
7 #include <compat/sys/systm.h>
8 #include <compat/sys/kernel.h>
9 #include <compat/sys/mutex.h>
10 #include <compat/sys/condvar.h>
12 #include "Condvar.h"
15 int
16 msleep(void* identifier, struct mtx* mutex, int priority,
17 const char* description, int timeout)
19 int status;
20 struct cv sleep;
22 conditionPublish(&sleep, identifier, description);
24 mtx_unlock(mutex);
25 status = publishedConditionTimedWait(identifier, timeout);
26 mtx_lock(mutex);
28 conditionUnpublish(&sleep);
30 return status;
34 void
35 wakeup(void* identifier)
37 publishedConditionNotifyAll(identifier);
41 int
42 _pause(const char* waitMessage, int timeout)
44 int waitChannel;
45 KASSERT(timeout != 0, ("pause: timeout required"));
46 return tsleep(&waitChannel, 0, waitMessage, timeout);