#endif
XBT_DEBUG("ADD MSG LEVELS");
- MSG_HOST_LEVEL = xbt_lib_add_level(host_lib,free);
+ MSG_HOST_LEVEL = xbt_lib_add_level(host_lib, (void_f_pvoid_t) __MSG_host_destroy);
}
/** \defgroup m_channel_management Understanding channels
*/
MSG_error_t MSG_set_channel_number(int number)
{
- xbt_assert0((msg_global)
+ xbt_assert((msg_global)
&& (msg_global->max_channel == 0),
"Channel number already set!");
*/
int MSG_get_channel_number(void)
{
- xbt_assert0((msg_global)
+ xbt_assert((msg_global)
&& (msg_global->max_channel != 0),
"Channel number not set yet!");
return MSG_OK;
}
+MSG_error_t MSG_main_stateful(void)
+{
+ /* Clean IO before the run */
+ fflush(stdout);
+ fflush(stderr);
+
+ if (MC_IS_ENABLED) {
+ MC_modelcheck_stateful();
+ }
+ else {
+ SIMIX_run();
+ }
+ return MSG_OK;
+}
+
+MSG_error_t MSG_main_liveness_stateful(xbt_automaton_t a)
+{
+ /* Clean IO before the run */
+ fflush(stdout);
+ fflush(stderr);
+
+ if (MC_IS_ENABLED) {
+ MC_modelcheck_liveness_stateful(a);
+ }
+ else {
+ SIMIX_run();
+ }
+ return MSG_OK;
+}
+
+MSG_error_t MSG_main_liveness_stateless(xbt_automaton_t a, char *prgm)
+{
+ /* Clean IO before the run */
+ fflush(stdout);
+ fflush(stderr);
+
+ if (MC_IS_ENABLED) {
+ MC_modelcheck_liveness_stateless(a, prgm);
+ }
+ else {
+ SIMIX_run();
+ }
+ return MSG_OK;
+}
+
/** \ingroup msg_simulation
* \brief Kill all running process
MSG_error_t MSG_clean(void)
{
-// Exit the LIB host_lib
-xbt_lib_free(&host_lib);
-xbt_lib_free(&link_lib);
-xbt_lib_free(&as_router_lib);
-
-
#ifdef HAVE_TRACING
TRACE_surf_release();
#endif
MSG_process_killall(0);
- free(msg_global);
- msg_global = NULL;
-
/* initialization of the action module */
_MSG_action_exit();
SIMIX_clean();
+ free(msg_global);
+ msg_global = NULL;
+
return MSG_OK;
}