From d63082ddf272639cfc695dd677d69a0f12300898 Mon Sep 17 00:00:00 2001 From: mquinson Date: Mon, 22 Mar 2010 10:09:26 +0000 Subject: [PATCH] more robustness in the code by not ignoring situations that we don't now how to deal with (instead, die loudly) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7290 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/simix/smx_deployment.c | 7 +++---- src/simix/smx_global.c | 12 ++++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/simix/smx_deployment.c b/src/simix/smx_deployment.c index 36a1a1da50..f956bce730 100644 --- a/src/simix/smx_deployment.c +++ b/src/simix/smx_deployment.c @@ -73,8 +73,7 @@ static void parse_process_finalize(void) surf_timer_model->extension.timer.set(start_time, (void *) &SIMIX_process_create, arg); - } - if ((start_time < 0) || (start_time == SIMIX_get_clock())) { + } else { // start_time <= SIMIX_get_clock() DEBUG2("Starting Process %s(%s) right now", parse_argv[0], parse_host); if (simix_global->create_process_function) @@ -89,8 +88,8 @@ static void parse_process_finalize(void) current_property_set); /* verify if process has been created */ if (!process) { - xbt_free(parse_host); - return; + xbt_free(parse_host); + return; } if (kill_time > SIMIX_get_clock()) { if (simix_global->kill_process_function) diff --git a/src/simix/smx_global.c b/src/simix/smx_global.c index dffafbeda1..8eb92c79cd 100644 --- a/src/simix/smx_global.c +++ b/src/simix/smx_global.c @@ -370,14 +370,14 @@ double SIMIX_solve(xbt_fifo_t actions_done, xbt_fifo_t actions_failed) xbt_free(args); continue; } + if (args->kill_time > SIMIX_get_clock()) { surf_timer_model->extension.timer.set(args->kill_time, (void *) &SIMIX_process_kill, (void *) process); } xbt_free(args); - } - if (fun == simix_global->create_process_function) { + } else if (fun == simix_global->create_process_function) { smx_process_arg_t args = arg; DEBUG2("Launching %s on %s", args->name, args->hostname); process = @@ -403,15 +403,15 @@ double SIMIX_solve(xbt_fifo_t actions_done, xbt_fifo_t actions_failed) (void *) process); } xbt_free(args); - } - if (fun == SIMIX_process_kill) { + } else if (fun == SIMIX_process_kill) { process = arg; DEBUG2("Killing %s on %s", process->name, process->smx_host->name); SIMIX_process_kill(process); - } - if (fun == simix_global->kill_process_function) { + } else if (fun == simix_global->kill_process_function) { process = arg; (*simix_global->kill_process_function) (process); + } else { + THROW_IMPOSSIBLE; } } -- 2.20.1