X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0e68761df671363be8da27a5824ec49f0fe91060..ba58c8b937ee08fc2b46be62a50b0b3ff0b0104f:/src/simix/smx_global.c diff --git a/src/simix/smx_global.c b/src/simix/smx_global.c index dffafbeda1..d747459a58 100644 --- a/src/simix/smx_global.c +++ b/src/simix/smx_global.c @@ -321,6 +321,7 @@ double SIMIX_solve(xbt_fifo_t actions_done, xbt_fifo_t actions_failed) if (xbt_swag_size(simix_global->process_to_run) && (elapsed_time > 0)) { DEBUG0("**************************************************"); } + DEBUG1("%d processes in the to_run list",xbt_swag_size(simix_global->process_to_run)); while ((process = xbt_swag_extract(simix_global->process_to_run))) { DEBUG2("Scheduling %s on %s", process->name, process->smx_host->name); @@ -370,14 +371,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 +404,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; } }