1180
|
1 #ifndef INCLUDED_SEM
|
|
2 #define INCLUDED_SEM
|
|
3
|
|
4 #include <pthread.h>
|
|
5
|
|
6 typedef struct sem_t {
|
|
7 volatile int value; //セマフォ変数
|
|
8 pthread_mutex_t mutex; //セマフォ操作用のロック
|
|
9 pthread_cond_t cond; //待ち合わせ用の条件変数
|
|
10 } sem_t, *sem_ptr;
|
|
11
|
|
12 class Sem {
|
|
13 public:
|
|
14 /* constructor */
|
|
15 Sem(int value);
|
|
16 ~Sem();
|
|
17 void sem_p();
|
|
18 void sem_v();
|
1877
|
19 void sem_v1();
|
1186
|
20 int count();
|
1180
|
21 /* variables */
|
|
22 private:
|
|
23 sem_t *sem;
|
|
24 };
|
|
25
|
|
26 typedef Sem *SemPtr;
|
|
27
|
|
28 #endif /* INCLUDED_SEM */
|