//file name: Semaphore.H #ifndef _Semaphore_H_ #define _Semaphore_H_ #include class Semaphore { private: sem_t sem; public: Semaphore() { Semaphore(1); } Semaphore(int val) { sem_init(&sem, 0, val); } int wait() { return sem_wait(&sem); } int trywait() { return sem_trywait(&sem); } int signal() { return sem_post(&sem); } int getValue() { int value; sem_getvalue(&sem, &value); return value; } void destroy() { sem_destroy(&sem); } ~Semaphore() { sem_destroy(&sem); } }; #endif // _Semaphore_H_