00001 #include "semaphore.h"
00002
00003 namespace n2nc {
00004
00005 namespace sync {
00006
00007 Semaphore::Semaphore(uint init_value){
00008
00009 ::sem_init(&this->m_sem,0,init_value);
00010 }
00011
00012 Semaphore::~Semaphore(){
00013 ::sem_destroy(&this->m_sem);
00014 }
00015 int Semaphore::getValue(){
00016 int val ;
00017 ::sem_getvalue(&this->m_sem, &val);
00018 return val ;
00019 }
00020
00021 bool Semaphore::tryWait(){
00022 return !::sem_trywait(&this->m_sem);
00023 }
00024 bool Semaphore::wait(){
00025 return !::sem_wait(&this->m_sem);
00026 }
00027 bool Semaphore::post(){
00028 return !::sem_post(&this->m_sem);
00029 }
00030
00031
00032 }
00033 }
00034
00035
00036