dol: initial dol commit
[jump.git] / dol / src / dol / visitor / PipeAndFilter / lib / Mutex.cpp
1 #include "Mutex.h"\r
2 \r
3 Mutex::Mutex() {\r
4     //std::cout << "Create Mutex." << std::endl;\r
5     _mutex = new pthread_mutex_t;\r
6     pthread_mutex_init(_mutex, NULL); //_mutexAttribute);\r
7 \r
8     _localMutex = new pthread_mutex_t;\r
9     pthread_mutex_init(_localMutex, NULL);\r
10 \r
11     _lockCondition = new pthread_cond_t;\r
12     pthread_cond_init(_lockCondition, NULL);\r
13 }\r
14 \r
15 \r
16 Mutex::~Mutex() {\r
17     //std::cout << "Delete Mutex." << std::endl;\r
18     pthread_mutex_destroy(_mutex);\r
19     delete _mutex;\r
20 \r
21     pthread_mutex_destroy(_localMutex);\r
22     delete _localMutex;\r
23 \r
24     pthread_cond_destroy(_lockCondition);\r
25     delete _lockCondition;\r
26     //std::cout << "Deleted Mutex." << std::endl;\r
27 }\r
28 \r
29 \r
30 int Mutex::trylock() {\r
31     int success = pthread_mutex_trylock(_mutex);\r
32     return success;\r
33 }\r
34 \r
35 \r
36 void Mutex::lock() {\r
37     pthread_mutex_lock(_mutex);\r
38 }\r
39 \r
40 \r
41 void Mutex::unlock() {\r
42     pthread_mutex_unlock(_mutex);\r
43 }\r
44 \r
45 \r
46 pthread_mutex_t *Mutex::getPThreadMutex() const {\r
47     return _mutex;\r
48 }\r