voxelTerrain
 All Classes Functions Variables Typedefs Enumerations Pages
mutexReadWrite.hpp
1 #ifndef MUTEXREADWRITE_HPP
2 #define MUTEXREADWRITE_HPP
3 
4 #include "blub/async/predecl.hpp"
5 
6 #include <boost/thread/locks.hpp>
7 #include <boost/thread/shared_mutex.hpp>
8 
9 
10 namespace blub
11 {
12 namespace async
13 {
14 
15 class mutexReadWrite : public boost::shared_mutex
16 {
17 public:
18  typedef boost::shared_mutex t_base;
19 
21  {
22  ;
23  }
24 
25  void lock()
26  {
27  t_base::lock();
28  }
29  void lockForRead()
30  {
31  t_base::lock_shared();
32  }
33  void unlockRead()
34  {
35  t_base::unlock_shared();
36  }
37  void lockForWrite()
38  {
39  t_base::lock();
40  }
41  bool tryLockForWrite()
42  {
43  return t_base::try_lock();
44  }
45 
46 
47 };
48 
49 
50 typedef boost::unique_lock<boost::shared_mutex> mutexLockerWrite; // TODO: put into extra files; and take include with it
51 typedef boost::shared_lock<boost::shared_mutex> mutexLockerRead;
52 
53 
54 }
55 }
56 
57 #endif // MUTEXREADWRITE_HPP
Definition: deadlineTimer.hpp:10
Definition: mutexReadWrite.hpp:15