Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Adding test for SURF concurrency feature
[simgrid.git] / src / mc / mc_global.cpp
index 0806e53..76a2af2 100644 (file)
@@ -20,8 +20,8 @@
 #endif
 
 #include "simgrid/sg_config.h"
-#include "../surf/surf_private.h"
-#include "../simix/smx_private.h"
+#include "src/surf/surf_private.h"
+#include "src/simix/smx_private.h"
 #include "xbt/fifo.h"
 #include "xbt/automaton.h"
 #include "xbt/dict.h"
 #ifdef HAVE_MC
 #include <libunwind.h>
 #include <xbt/mmalloc.h>
-#include "../xbt/mmalloc/mmprivate.h"
-#include "mc_object_info.h"
-#include "mc_comm_pattern.h"
-#include "mc_request.h"
-#include "mc_safety.h"
-#include "mc_snapshot.h"
-#include "mc_liveness.h"
-#include "mc_private.h"
-#include "mc_unw.h"
-#include "mc_smx.h"
-#include "mcer_ignore.h"
+#include "src/xbt/mmalloc/mmprivate.h"
+#include "src/mc/mc_object_info.h"
+#include "src/mc/mc_comm_pattern.h"
+#include "src/mc/mc_request.h"
+#include "src/mc/mc_safety.h"
+#include "src/mc/mc_snapshot.h"
+#include "src/mc/mc_liveness.h"
+#include "src/mc/mc_private.h"
+#include "src/mc/mc_unw.h"
+#include "src/mc/mc_smx.h"
 #endif
-#include "mc_record.h"
-#include "mc_protocol.h"
-#include "mc_client.h"
+#include "src/mc/mc_record.h"
+#include "src/mc/mc_protocol.h"
+#include "src/mc/mc_client.h"
 
 extern "C" {
 
@@ -62,8 +61,6 @@ int user_max_depth_reached = 0;
 mc_state_t mc_current_state = NULL;
 char mc_replay_mode = FALSE;
 
-__thread mc_comparison_times_t mc_comp_times = NULL;
-__thread double mc_snapshot_comparison_time;
 mc_stats_t mc_stats = NULL;
 mc_global_t initial_global_state = NULL;
 xbt_fifo_t mc_stack = NULL;
@@ -263,7 +260,7 @@ void MC_replay(xbt_fifo_t stack)
       if (_sg_mc_comms_determinism || _sg_mc_send_determinism)
         MC_handle_comm_pattern(call, req, value, NULL, 1);
 
-      MC_wait_for_requests();
+      mc_model_checker->wait_for_requests();
 
       count++;
     }
@@ -330,7 +327,7 @@ void MC_replay_liveness(xbt_fifo_t stack)
         }
 
         MC_simcall_handle(req, value);
-        MC_wait_for_requests();
+        mc_model_checker->wait_for_requests();
       }
 
       /* Update statistics */
@@ -481,13 +478,13 @@ void MC_automaton_load(const char *file)
 }
 
 // TODO, fix cross-process access (this function is not used)
-void MC_dump_stacks(FILE* file)
+static void MC_dump_stacks(FILE* file)
 {
   int nstack = 0;
-  stack_region_t current_stack;
-  unsigned cursor;
-  xbt_dynar_foreach(stacks_areas, cursor, current_stack) {
-    unw_context_t * context = (unw_context_t *)current_stack->context;
+  for (auto const& stack : mc_model_checker->process().stack_areas()) {
+
+    xbt_die("Fix cross-process access to the context");
+    unw_context_t * context = (unw_context_t *)stack.context;
     fprintf(file, "Stack %i:\n", nstack);
 
     int nframe = 0;
@@ -563,11 +560,6 @@ void MC_report_crash(int status)
   MC_print_statistics(mc_stats);
 }
 
-void MC_invalidate_cache(void)
-{
-  if (mc_model_checker)
-    mc_model_checker->process().cache_flags = 0;
-}
 #endif
 
 }