31 int err = pthread_mutex_init(&
m_mutex, NULL);
34 std::cerr <<
"Mutex::Mutex(): pthread_mutex_init() returned " << err
42 int err = pthread_mutex_destroy(&
m_mutex);
44 std::cerr <<
"Mutex::~Mutex(): pthread_mutex_destroy() returned " << err
52 int err = pthread_mutex_lock(&
m_mutex);
58 std::cerr <<
"Mutex::Lock(): mutex deadlock prevented." << std::endl;
62 std::cerr <<
"Mutex::Lock(): mutex not initialized." << std::endl;
66 std::cerr <<
"Mutex::Lock(): pthread_mutex_lock() returned " << err
76 int err = pthread_mutex_trylock(&
m_mutex);
83 std::cerr <<
"Mutex::TryLock(): mutex not initialized." << std::endl;
87 std::cerr <<
"Mutex::TryLock(): pthread_mutex_trylock() returned "
97 int err = pthread_mutex_unlock(&
m_mutex);
104 std::cerr <<
"Mutex::Unlock(): mutex not initialized." << std::endl;
108 std::cerr <<
"Mutex::Unlock(): pthread_mutex_unlock() returned " << err
119 int err = pthread_cond_init(&
m_cond, NULL);
124 std::cerr <<
"Condition::Condition(): pthread_cond_init() returned " << err
132 int err = pthread_cond_destroy(&
m_cond);
134 std::cerr <<
"Condition::~Condition(): pthread_cond_destroy() returned "
144 std::cerr <<
"Condition::Wait(): pthread_cond_wait() returned " << err
152 int err = pthread_cond_signal(&
m_cond);
154 std::cerr <<
"Condition::Signal(): pthread_cond_signal() returned " << err
162 int err = pthread_cond_broadcast(&
m_cond);
164 std::cerr <<
"Condition::Broadcast(): pthread_cond_broadcast() returned "
173 if ((initialcount < 0 || maxcount < 0)
174 || ((maxcount > 0) && (initialcount > maxcount))) {
175 std::cerr <<
"Semaphore::Semaphore(): invalid initial or maximal count."
237 return (result == 0);
Contains declarations of MPI subroutines used in Roccom.
Semaphore(int initialcount=0, int maxcount=0)