Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix SemWai::ReversibleRace()
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Wed, 8 Nov 2023 09:24:14 +0000 (10:24 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Wed, 8 Nov 2023 09:24:14 +0000 (10:24 +0100)
examples/sthread/pthread-mc-producer-consumer.tesh
src/mc/explo/odpor/ReversibleRaceCalculator.cpp

index 508d8da..3c2eee5 100644 (file)
@@ -13,4 +13,4 @@ $ $VALGRIND_NO_TRACE_CHILDREN ${bindir:=.}/../../bin/simgrid-mc --cfg=model-chec
 $ $VALGRIND_NO_TRACE_CHILDREN ${bindir:=.}/../../bin/simgrid-mc --cfg=model-check/reduction:odpor --cfg=model-check/setenv:LD_PRELOAD=${libdir:=.}/libsthread.so ${bindir:=.}/pthread-producer-consumer -q  -C 1 -P 1
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'model-check/reduction' to 'odpor'
 > [0.000000] [mc_dfs/INFO] Start a DFS exploration. Reduction is: odpor.
-> [0.000000] [mc_dfs/INFO] DFS exploration ended. 39 unique states visited; 0 backtracks (0 transition replays, 39 states visited overall)
+> [0.000000] [mc_dfs/INFO] DFS exploration ended. 617 unique states visited; 29 backtracks (524 transition replays, 1170 states visited overall)
index b20ebaa..d671e93 100644 (file)
@@ -168,7 +168,7 @@ bool ReversibleRaceCalculator::is_race_reversible_SemWait(const Execution& E, Ex
   // Reversible with everynbody but unlock which creates a free token
   const auto e1_transition = E.get_transition_for_handle(e1);
   if (e1_transition->type_ == Transition::Type::SEM_UNLOCK &&
-      static_cast<const SemaphoreTransition*>(e1_transition)->get_capacity() == 0)
+      static_cast<const SemaphoreTransition*>(e1_transition)->get_capacity() <= 1)
     return false;
   return true;
 }