-/* $Id$ */
-
-/* Copyright (c) 2002-2007 Arnaud Legrand. */
-/* Copyright (c) 2007 Bruno Donassolo. */
-/* All rights reserved. */
+/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010. The SimGrid Team.
+ * All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "msg/private.h"
+#include "mc/mc.h"
#include "xbt/sysdep.h"
#include "xbt/log.h"
#include "xbt/virtu.h"
SIMIX_function_register_process_cleanup(__MSG_process_cleanup);
SIMIX_function_register_process_kill(_MSG_process_kill_from_SIMIX);
}
- return;
-}
-
-/** \ingroup msg_easier_life
- * \brief Traces MSG events in the Paje format.
- */
-
-void MSG_paje_output(const char *filename)
-{
}
/** \defgroup m_channel_management Understanding channels
*/
MSG_error_t MSG_main(void)
{
- smx_action_t smx_action;
- xbt_fifo_t actions_done = xbt_fifo_new();
- xbt_fifo_t actions_failed = xbt_fifo_new();
-
/* Clean IO before the run */
fflush(stdout);
fflush(stderr);
SIMIX_init();
- //surf_solve(); /* Takes traces into account. Returns 0.0 */
- /* xbt_fifo_size(msg_global->process_to_run) */
-
- while (SIMIX_solve(actions_done, actions_failed) != -1.0) {
-
- while ((smx_action = xbt_fifo_pop(actions_failed))) {
- DEBUG1("** %s failed **", SIMIX_action_get_name(smx_action));
- SIMIX_action_signal_all(smx_action);
- }
-
- while ((smx_action = xbt_fifo_pop(actions_done))) {
- DEBUG1("** %s done **", SIMIX_action_get_name(smx_action));
- SIMIX_action_signal_all(smx_action);
- }
- }
- xbt_fifo_free(actions_failed);
- xbt_fifo_free(actions_done);
+ if (_surf_do_model_check)
+ MC_modelcheck(1);
+ else
+ while (SIMIX_solve(NULL, NULL) != -1.0);
+
return MSG_OK;
}
m_host_t h = NULL;
m_process_t p = NULL;
+#ifdef HAVE_TRACING
+ TRACE_msg_clean ();
+#endif
while ((p = xbt_fifo_pop(msg_global->process_list))) {
MSG_process_kill(p);
/* cleanup all resources in the mailbox module */
MSG_mailbox_mod_exit();
- SIMIX_clean();
-
+ /* initialization of the action module */
+ _MSG_action_exit();
+ SIMIX_clean();
return MSG_OK;
}