1 #include "daq/slc/system/MMutex.h"
7 MMutex::MMutex(
const MMutex& mutex)
12 MMutex::MMutex(
void* addr)
14 set((pthread_mutex_t*)addr);
19 bool MMutex::init(
void* addr)
28 pthread_mutexattr_t attr;
29 pthread_mutexattr_init(&attr);
30 pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
31 pthread_mutex_init(m_mu, &attr);
32 pthread_mutexattr_destroy(&attr);
36 bool MMutex::set(
void* addr)
38 m_mu = (pthread_mutex_t*)addr;
44 if (pthread_mutex_lock(m_mu) != 0) {
51 bool MMutex::trylock()
53 if (pthread_mutex_lock(m_mu) != 0) {
61 if (pthread_mutex_unlock(m_mu) != 0) {
68 bool MMutex::destroy()
70 if (pthread_mutex_destroy(m_mu) != 0) {