changes
[c11tester.git] / mutex.cc
1 #include "mutex.h"
2 #include "model.h"
3
4
5 namespace std {
6 mutex::mutex() :
7         owner(0), islocked(false)
8 {
9
10 }
11         
12 void mutex::lock() {
13   model->switch_to_master(new ModelAction(ATOMIC_LOCK, std::memory_order_seq_cst, this));
14 }
15         
16 bool mutex::try_lock() {
17   model->switch_to_master(new ModelAction(ATOMIC_TRYLOCK, std::memory_order_seq_cst, this));
18   return thread_current()->get_return_value();
19 }
20
21 void mutex::unlock() {
22   model->switch_to_master(new ModelAction(ATOMIC_UNLOCK, std::memory_order_seq_cst, this));
23 }
24
25 }