MC_UNSET_RAW_MEM;
}
-void MC_modelcheck(int method){
+void MC_modelcheck(int method)
+{
MC_init(method);
default:
break;
}
+
+ MC_exit(method);
+}
+
+void MC_exit(int method)
+{
+ mc_state_t state;
+
+ switch(method){
+ case 0:
+ //MC_dfs_exit();
+ break;
+ case 1:
+ //MC_dpor_exit();
+ break;
+ default:
+ break;
+ }
+
+ /* Destroy MC data structures (in RAW memory) */
+ MC_SET_RAW_MEM;
+ xbt_free(mc_stats);
+
+ while( (state = (mc_state_t)xbt_fifo_pop(mc_stack)) != NULL )
+ MC_state_delete(state);
+
+ xbt_fifo_free(mc_stack);
+ xbt_setset_destroy(mc_setset);
+ MC_UNSET_RAW_MEM;
}
int MC_random(int min, int max)
xbt_setset_foreach(state->created_transitions, cursor, trans){
MC_transition_delete(trans);
}
-
+
+ xbt_setset_destroy_set(state->created_transitions);
xbt_setset_destroy_set(state->transitions);
xbt_setset_destroy_set(state->enabled_transitions);
xbt_setset_destroy_set(state->interleave);
DEBUG5("Resource [%s] (%d): Executing RUNNING action \"%s\" (%p) MaxDuration %lf",
model->name, xbt_swag_size(model->states.running_action_set),
smx_action->name, smx_action, action->max_duration);
-
- /* Copy the transfered data of the completed network actions */
- /* FIXME: be carefull it might not be an action of the network model */
- if(smx_action && smx_action->data != NULL)
- SIMIX_network_copy_data((smx_comm_t)smx_action->data);
-
+
if(smx_action)
SIMIX_action_signal_all(smx_action);
}