#include #include #include "synch.h" SemPT::SemPT( int InitValue ) { sem = new sem_t; sem_init( sem, 0, InitValue ); } SemPT::~SemPT() { sem_destroy( sem ); delete sem; } int SemPT::Signal() { return sem_post( sem ); } int SemPT::Wait() { return sem_wait( sem ); } Mutex::Mutex() { mutex = new pthread_mutex_t; pthread_mutex_init( mutex, NULL ); } Mutex::~Mutex() { pthread_mutex_destroy( mutex ); delete mutex; } int Mutex::Lock() { return pthread_mutex_lock( mutex ); } int Mutex::Unlock() { return pthread_mutex_unlock( mutex ); } Lock::Lock() { lock = new pthread_mutex_t; pthread_mutex_init( lock, NULL ); } Lock::~Lock() { pthread_mutex_destroy( lock ); delete lock; } int Lock::Acquire() { return pthread_mutex_lock( lock ); } int Lock::Release() { return pthread_mutex_unlock( lock ); } Condition::Condition() { vc = new pthread_cond_t; pthread_cond_init( vc, NULL ); } Condition::~Condition() { pthread_cond_destroy( vc ); delete vc; } int Condition::Wait( Lock * conditionLock ) { return pthread_cond_wait( vc, conditionLock->getMutex() ); } int Condition::Signal( Lock * conditionLock ) { return pthread_cond_signal( vc ); } int Condition::Broadcast( Lock * conditionLock ) { return pthread_cond_broadcast( vc ); }