git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7745
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
/********************************* Global *************************************/
XBT_PUBLIC(void) MC_init(int);
+XBT_PUBLIC(void) MC_exit(int);
XBT_PUBLIC(void) MC_assert(int);
XBT_PUBLIC(void) MC_modelcheck(int);
XBT_PUBLIC(int) MC_random(int,int);
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)
void MC_dpor_init(void);
void MC_dfs(void);
void MC_dpor(void);
+void MC_dfs_exit(void);
+void MC_dpor_exit(void);
+
+
/******************************* Transitions **********************************/
typedef struct s_mc_transition{