changes.
[IRC.git] / Robust / src / Runtime / psemaphore.h
1 #ifndef ___PSEMAPHORE_H__
2 #define ___PSEMAPHORE_H__
3
4 #include <pthread.h>
5 #include "garbage.h"
6
7
8 typedef struct psemaphore_t {
9   pthread_mutex_t lock;
10   pthread_cond_t cond;
11   int signaled;
12   int tag;
13 } psemaphore;
14
15
16 void psem_init(psemaphore* sem);
17 void psem_take(psemaphore* sem, struct garbagelist* gl);
18 void psem_give_tag(psemaphore* sem, int tag);
19 void psem_give(psemaphore* sem);
20 void psem_reset(psemaphore* sem);
21
22
23 #endif // ___PSEMAPHORE_H__