Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Simplify mc::api a bit
[simgrid.git] / src / mc / api.cpp
index 7fb3fff..78dcd01 100644 (file)
@@ -5,6 +5,7 @@
 #include "src/mc/Session.hpp"
 #include "src/mc/checker/SimcallInspector.hpp"
 #include "src/mc/mc_comm_pattern.hpp"
+#include "src/mc/mc_exit.hpp"
 #include "src/mc/mc_pattern.hpp"
 #include "src/mc/mc_private.hpp"
 #include "src/mc/mc_smx.hpp"
@@ -506,14 +507,12 @@ unsigned long Api::mc_get_executed_trans() const
   return mc_model_checker->executed_transitions;
 }
 
-bool Api::mc_check_deadlock() const
+void Api::mc_check_deadlock() const
 {
-  return mc_model_checker->checkDeadlock();
-}
-
-void Api::mc_show_deadlock() const
-{
-  MC_show_deadlock();
+  if (mc_model_checker->checkDeadlock()) {
+    MC_show_deadlock();
+    throw DeadlockError();
+  }
 }
 
 /** Get the issuer of a simcall (`req->issuer`)
@@ -630,7 +629,7 @@ smx_simcall_t Api::mc_state_choose_request(simgrid::mc::State* state) const
   return nullptr;
 }
 
-std::list<transition_detail_t> Api::get_enabled_transitions(simgrid::mc::State* state)
+std::list<transition_detail_t> Api::get_enabled_transitions(simgrid::mc::State* state) const
 {
   std::list<transition_detail_t> tr_list{};