X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=mutex.cc;h=da3184e55a074823b2909bc653e1c2ba30b6b067;hb=bee1e27429b9a66e414eb83cf14e2089dd40a79e;hp=91b0b9a33f8a4109d82e9334f127534b1d6ec137;hpb=a4090d03cc1a5f5bca8f10986d74b76a9bb45371;p=model-checker.git diff --git a/mutex.cc b/mutex.cc index 91b0b9a..da3184e 100644 --- a/mutex.cc +++ b/mutex.cc @@ -3,26 +3,31 @@ #include "model.h" #include "threads-model.h" #include "clockvector.h" +#include "action.h" namespace std { -mutex::mutex() { - state.islocked=false; - thread_id_t tid=thread_current()->get_id(); - state.alloc_tid=tid; - state.alloc_clock=model->get_cv(tid)->getClock(tid); + +mutex::mutex() +{ + state.locked = NULL; + thread_id_t tid = thread_current()->get_id(); + state.alloc_tid = tid; + state.alloc_clock = model->get_cv(tid)->getClock(tid); } -void mutex::lock() { - model->switch_to_master(new ModelAction(ATOMIC_LOCK, std::memory_order_seq_cst, this)); +void mutex::lock() +{ + model->switch_to_master(new ModelAction(ATOMIC_LOCK, std::memory_order_seq_cst, this)); } -bool mutex::try_lock() { - model->switch_to_master(new ModelAction(ATOMIC_TRYLOCK, std::memory_order_seq_cst, this)); - return thread_current()->get_return_value(); +bool mutex::try_lock() +{ + return model->switch_to_master(new ModelAction(ATOMIC_TRYLOCK, std::memory_order_seq_cst, this)); } -void mutex::unlock() { - model->switch_to_master(new ModelAction(ATOMIC_UNLOCK, std::memory_order_seq_cst, this)); +void mutex::unlock() +{ + model->switch_to_master(new ModelAction(ATOMIC_UNLOCK, std::memory_order_seq_cst, this)); } }