Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Move stacks_areas code in mcer_ignore
[simgrid.git] / src / simix / popping_generated.c
index b339a4a..9f8e55c 100644 (file)
@@ -15,6 +15,7 @@
 
 #include "smx_private.h"
 #ifdef HAVE_MC
+#include "mc/mc_process.h"
 #endif
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_popping);
@@ -140,14 +141,11 @@ const char* simcall_names[] = {
   [SIMCALL_STORAGE_GET_CONTENT] = "SIMCALL_STORAGE_GET_CONTENT",
   [SIMCALL_ASR_GET_PROPERTIES] = "SIMCALL_ASR_GET_PROPERTIES",
   [SIMCALL_MC_RANDOM] = "SIMCALL_MC_RANDOM",
+  [SIMCALL_SET_CATEGORY] = "SIMCALL_SET_CATEGORY",
 #ifdef HAVE_LATENCY_BOUND_TRACKING
   [SIMCALL_COMM_IS_LATENCY_BOUNDED] = "SIMCALL_COMM_IS_LATENCY_BOUNDED",
 #endif
 
-#ifdef HAVE_TRACING
-  [SIMCALL_SET_CATEGORY] = "SIMCALL_SET_CATEGORY",
-#endif
-
 #ifdef HAVE_MC
   [SIMCALL_MC_SNAPSHOT] = "SIMCALL_MC_SNAPSHOT",
   [SIMCALL_MC_COMPARE_SNAPSHOTS] = "SIMCALL_MC_COMPARE_SNAPSHOTS",
@@ -162,6 +160,11 @@ const char* simcall_names[] = {
  */
 void SIMIX_simcall_handle(smx_simcall_t simcall, int value) {
   XBT_DEBUG("Handling simcall %p: %s", simcall, SIMIX_simcall_name(simcall->call));
+  #ifdef HAVE_MC
+  if (mc_model_checker) {
+    MC_invalidate_cache();
+  }
+  #endif
   SIMCALL_SET_MC_VALUE(simcall, value);
   if (simcall->issuer->context->iwannadie && simcall->call != SIMCALL_PROCESS_CLEANUP)
     return;
@@ -742,17 +745,14 @@ case SIMCALL_MC_RANDOM:
       SIMIX_simcall_answer(simcall);
       break;  
 
-#ifdef HAVE_LATENCY_BOUND_TRACKING
-case SIMCALL_COMM_IS_LATENCY_BOUNDED:
-      simcall->result.i = SIMIX_comm_is_latency_bounded((smx_synchro_t) simcall->args[0].dp);
+case SIMCALL_SET_CATEGORY:
+       SIMIX_set_category((smx_synchro_t) simcall->args[0].dp, simcall->args[1].cc);
       SIMIX_simcall_answer(simcall);
       break;  
 
-#endif
-
-#ifdef HAVE_TRACING
-case SIMCALL_SET_CATEGORY:
-       SIMIX_set_category((smx_synchro_t) simcall->args[0].dp, simcall->args[1].cc);
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+case SIMCALL_COMM_IS_LATENCY_BOUNDED:
+      simcall->result.i = SIMIX_comm_is_latency_bounded((smx_synchro_t) simcall->args[0].dp);
       SIMIX_simcall_answer(simcall);
       break;