X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=action.cc;h=a11467587901f258a03b9e11623403f60f3d1263;hb=ac8e176cd4a8756244c12dbbcaf961d27bfc8a74;hp=a313b70fbe970810c96fe16bc1d7a0a27108508b;hpb=7d97490a3d445eedb6073b5b00ee60604755f9a0;p=model-checker.git diff --git a/action.cc b/action.cc index a313b70..a114675 100644 --- a/action.cc +++ b/action.cc @@ -264,7 +264,7 @@ void ModelAction::process_rmw(ModelAction * act) { */ bool ModelAction::could_synchronize_with(const ModelAction *act) const { - //Same thread can't be reordered + // Same thread can't be reordered if (same_thread(act)) return false; @@ -283,15 +283,15 @@ bool ModelAction::could_synchronize_with(const ModelAction *act) const (act->could_be_write() || act->is_fence())) return true; - //lock just released...we can grab lock + // lock just released...we can grab lock if ((is_lock() ||is_trylock()) && (act->is_unlock()||act->is_wait())) return true; - //lock just acquired...we can fail to grab lock + // lock just acquired...we can fail to grab lock if (is_trylock() && act->is_success_lock()) return true; - //other thread stalling on lock...we can release lock + // other thread stalling on lock...we can release lock if (is_unlock() && (act->is_trylock()||act->is_lock())) return true; @@ -310,19 +310,19 @@ bool ModelAction::could_synchronize_with(const ModelAction *act) const bool ModelAction::is_conflicting_lock(const ModelAction *act) const { - //Must be different threads to reorder + // Must be different threads to reorder if (same_thread(act)) return false; - //Try to reorder a lock past a successful lock + // Try to reorder a lock past a successful lock if (act->is_success_lock()) return true; - //Try to push a successful trylock past an unlock + // Try to push a successful trylock past an unlock if (act->is_unlock() && is_trylock() && value == VALUE_TRYSUCCESS) return true; - //Try to push a successful trylock past a wait + // Try to push a successful trylock past a wait if (act->is_wait() && is_trylock() && value == VALUE_TRYSUCCESS) return true; @@ -470,7 +470,11 @@ void ModelAction::print() const type_str = "unknown type"; } - uint64_t valuetoprint=type==ATOMIC_READ?(reads_from!=NULL?reads_from->value:VALUE_NONE):value; + uint64_t valuetoprint; + if (type == ATOMIC_READ && reads_from != NULL) + valuetoprint = reads_from->value; + else + valuetoprint = value; switch (this->order) { case std::memory_order_relaxed: