/******************************************************************************* * BMutex.cc BMutex Classes * T.Barnaby, BEAM Ltd, 1/11/02 ******************************************************************************* */ #include #define MDEBUG 0 BMutex::BMutex(){ pthread_mutex_init(&omutex, 0); } BMutex::BMutex(const BMutex& mutex){ pthread_mutex_init(&omutex, 0); } BMutex& BMutex::operator=(const BMutex& mutex){ return *this; } BMutex::~BMutex(){ pthread_mutex_destroy(&omutex); } #if MDEBUG #include #include #include #include #include static pid_t gettid(){ return syscall(__NR_gettid); } int BMutex::lock(){ int e; printf("BMutex::lock: %p Thread: %u\n", this, gettid()); e = pthread_mutex_lock(&omutex); printf("BMutex::lock: %p: Thread: %u: Acquired\n", this, gettid()); return e; } int BMutex::unlock(){ printf("BMutex::unlock: %p Thread: %u\n", this, gettid()); return pthread_mutex_unlock(&omutex); } int BMutex::tryLock(){ return pthread_mutex_trylock(&omutex); } #else int BMutex::lock(){ return pthread_mutex_lock(&omutex); } int BMutex::unlock(){ return pthread_mutex_unlock(&omutex); } int BMutex::tryLock(){ return pthread_mutex_trylock(&omutex); } #endif