Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MSG_config mc-related stuff is not enough to activate model-checking, the --cfg is...
authorMartin Quinson <martin.quinson@loria.fr>
Fri, 22 Jun 2012 09:50:59 +0000 (11:50 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Fri, 22 Jun 2012 09:51:10 +0000 (11:51 +0200)
src/mc/mc_global.c
src/surf/surf_config.c

index 4876944..b304337 100644 (file)
@@ -21,7 +21,11 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_global, mc,
 /* Configuration support */
 e_mc_reduce_t mc_reduce_kind=e_mc_reduce_unset;
 
+extern int _surf_init_status;
 void _mc_cfg_cb_reduce(const char *name, int pos) {
+  if (_surf_init_status && !_surf_do_model_check) {
+    xbt_die("You are specifying a reduction strategy after the initialization (through MSG_config?), but model-checking was not activated at config time (through --cfg=model-check:1). This won't work, sorry.");
+  }
   char *val= xbt_cfg_get_string(_surf_cfg_set, name);
   if (!strcasecmp(val,"none")) {
     mc_reduce_kind = e_mc_reduce_none;
@@ -34,10 +38,16 @@ void _mc_cfg_cb_reduce(const char *name, int pos) {
 }
 
 void _mc_cfg_cb_checkpoint(const char *name, int pos) {
+  if (_surf_init_status && !_surf_do_model_check) {
+    xbt_die("You are specifying a checkpointing value after the initialization (through MSG_config?), but model-checking was not activated at config time (through --cfg=model-check:1). This won't work, sorry.");
+  }
   _surf_mc_checkpoint = xbt_cfg_get_int(_surf_cfg_set, name);
   xbt_cfg_set_int(_surf_cfg_set,"model-check",1);
 }
 void _mc_cfg_cb_property(const char *name, int pos) {
+  if (_surf_init_status && !_surf_do_model_check) {
+    xbt_die("You are specifying a property after the initialization (through MSG_config?), but model-checking was not activated at config time (through --cfg=model-check:1). This won't work, sorry.");
+  }
   _surf_mc_property_file= xbt_cfg_get_string(_surf_cfg_set, name);
   xbt_cfg_set_int(_surf_cfg_set,"model-check",1);
 }
index b9e903b..0cff30e 100644 (file)
@@ -337,8 +337,6 @@ void surf_config_init(int *argc, char **argv)
 
   /* Create the configuration support */
   if (_surf_init_status == 0) { /* Only create stuff if not already inited */
-    _surf_init_status = 1;
-
     sprintf(description,
             "The model to use for the CPU. Possible values: ");
     p = description;
@@ -643,6 +641,8 @@ void surf_config_init(int *argc, char **argv)
 
 
     surf_config_cmd_line(argc, argv);
+
+    _surf_init_status = 1;
   } else {
     XBT_WARN("Call to surf_config_init() after initialization ignored");
   }