Build on wheezy, and presumably precise
[invirt/third/libt4.git] / mutex.cc
1 #include "mutex.h"
2 #include "lang/verify.h"
3
4 mutex::mutex() {
5     VERIFY(pthread_mutex_init(&m, NULL) == 0);
6 }
7
8 mutex::~mutex() {
9     VERIFY(pthread_mutex_destroy(&m) == 0);
10 }
11
12 void mutex::acquire() {
13     VERIFY(pthread_mutex_lock(&m) == 0);
14 }
15
16 void mutex::release() {
17     VERIFY(pthread_mutex_unlock(&m) == 0);
18 }
19
20 mutex::operator pthread_mutex_t *() {
21     return &m;
22 }
23
24 cond::cond() {
25     VERIFY(pthread_cond_init(&c, NULL) == 0);
26 }
27
28 cond::~cond() {
29     VERIFY(pthread_cond_destroy(&c) == 0);
30 }
31
32 void cond::wait(mutex &m) {
33     VERIFY(pthread_cond_wait(&c, m) == 0);
34 }
35
36 void cond::signal() {
37     VERIFY(pthread_cond_signal(&c) == 0);
38 }
39
40 void cond::broadcast() {
41     VERIFY(pthread_cond_broadcast(&c) == 0);
42 }