Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Initial support MC record/replay
[simgrid.git] / src / mc / mc_liveness.c
index 2c5ded0..841b102 100644 (file)
@@ -5,6 +5,7 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "mc_private.h"
+#include "mc_record.h"
 #include <unistd.h>
 #include <sys/wait.h>
 
@@ -216,9 +217,6 @@ void MC_pre_modelcheck_liveness(void)
 
   MC_wait_for_requests();
 
-  MC_ignore_heap(simix_global->process_to_run->data, 0);
-  MC_ignore_heap(simix_global->process_that_ran->data, 0);
-
   MC_SET_MC_HEAP;
 
   acceptance_pairs = xbt_dynar_new(sizeof(mc_visited_pair_t), NULL);
@@ -243,7 +241,7 @@ void MC_pre_modelcheck_liveness(void)
       initial_pair->graph_state = MC_state_new();
       initial_pair->atomic_propositions = get_atomic_propositions_values();
 
-      /* Get enabled process and insert it in the interleave set of the graph_state */
+      /* Get enabled processes and insert them in the interleave set of the graph_state */
       xbt_swag_foreach(process, simix_global->process_list) {
         if (MC_process_is_enabled(process)) {
           MC_state_interleave_process(initial_pair->graph_state, process);
@@ -255,7 +253,7 @@ void MC_pre_modelcheck_liveness(void)
       initial_pair->search_cycle = 0;
 
       xbt_fifo_unshift(mc_stack, initial_pair);
-
+      
       MC_SET_STD_HEAP;
 
       MC_modelcheck_liveness();
@@ -301,7 +299,6 @@ void MC_modelcheck_liveness()
 
   int value;
   smx_simcall_t req = NULL;
-  char *req_str;
 
   xbt_automaton_transition_t transition_succ;
   unsigned int cursor = 0;
@@ -373,12 +370,7 @@ void MC_modelcheck_liveness()
           }
           MC_SET_STD_HEAP;
 
-          /* Debug information */
-          if (XBT_LOG_ISENABLED(mc_liveness, xbt_log_priority_debug)) {
-            req_str = MC_request_to_string(req, value);
-            XBT_DEBUG("Execute: %s", req_str);
-            xbt_free(req_str);
-          }
+          MC_LOG_REQUEST(mc_liveness, req, value);
 
           MC_SET_MC_HEAP;
           if (dot_output != NULL) {
@@ -394,7 +386,7 @@ void MC_modelcheck_liveness()
           mc_stats->executed_transitions++;
 
           /* Answer the request */
-          SIMIX_simcall_pre(req, value);
+          SIMIX_simcall_handle(req, value);
 
           /* Wait for requests (schedules processes) */
           MC_wait_for_requests();
@@ -426,7 +418,7 @@ void MC_modelcheck_liveness()
               next_pair->automaton_state = transition_succ->dst;
               next_pair->atomic_propositions = get_atomic_propositions_values();
 
-              /* Get enabled process and insert it in the interleave set of the next graph_state */
+              /* Get enabled processes and insert them in the interleave set of the next graph_state */
               xbt_swag_foreach(process, simix_global->process_list) {
                 if (MC_process_is_enabled(process)) {
                   MC_state_interleave_process(next_pair->graph_state, process);