- }
-}
-
-/* Debug purpose, incomplete */
-void SIMIX_display_process_status(void)
-{
- smx_process_t process = NULL;
- xbt_fifo_item_t item = NULL;
- smx_action_t act;
- int nbprocess = xbt_swag_size(simix_global->process_list);
-
- INFO1("%d processes are still running, waiting for something.",
- nbprocess);
- /* List the process and their state */
- INFO0
- ("Legend of the following listing: \"<process> on <host>: <status>.\"");
- xbt_swag_foreach(process, simix_global->process_list) {
- smx_simdata_process_t p_simdata =
- (smx_simdata_process_t) process->simdata;
- // simdata_host_t h_simdata=(simdata_host_t)p_simdata->host->simdata;
- char *who, *who2;
-
- asprintf(&who, "%s on %s: %s",
- process->name,
- p_simdata->smx_host->name,
- (process->simdata->blocked) ? "[BLOCKED] "
- : ((process->simdata->suspended) ? "[SUSPENDED] " : ""));
-
- if (p_simdata->mutex) {
- who2 = bprintf("%s Blocked on mutex %p", who, p_simdata->mutex);
- free(who);
- who = who2;
- } else if (p_simdata->cond) {
- who2 =
- bprintf
- ("%s Blocked on condition %p; Waiting for the following actions:",
- who, p_simdata->cond);
- free(who);
- who = who2;
- xbt_fifo_foreach(p_simdata->cond->actions, item, act, smx_action_t) {
- who2 = bprintf("%s '%s'(%p)", who, act->name,act);
- free(who);
- who = who2;
- }
- } else {
- who2 =
- bprintf
- ("%s Blocked in an unknown status (please report this bug)",
- who);
- free(who);
- who = who2;
- }
- INFO1("%s.", who);
- free(who);
- }
-}
-
-/* FIXME: Yeah, I'll do it in a portable maner one day [Mt] */
-#include <signal.h>
-
-static void _XBT_CALL inthandler(int ignored)
-{
- INFO0("CTRL-C pressed. Displaying status and bailing out");
- SIMIX_display_process_status();
- exit(1);
-}
-
-/**
- * \brief Launch the SIMIX simulation, debug purpose
- */
-void __SIMIX_main(void)
-{
- smx_process_t process = NULL;
- smx_cond_t cond = NULL;
- smx_action_t smx_action;
- xbt_fifo_t actions_done = xbt_fifo_new();
- xbt_fifo_t actions_failed = xbt_fifo_new();