From: Samuel Lepetit Date: Thu, 21 Jun 2012 12:26:23 +0000 (+0200) Subject: Don't give control back to user after a process is killed. X-Git-Tag: v3_8~528^2~3 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/5b0a4fec1f39a56c4f0a0e64febec8a96e3ea77c Don't give control back to user after a process is killed. --- diff --git a/src/simix/smx_host.c b/src/simix/smx_host.c index 815d947a5d..32fd765656 100644 --- a/src/simix/smx_host.c +++ b/src/simix/smx_host.c @@ -348,7 +348,8 @@ void SIMIX_execution_finish(smx_action_t action) case SIMIX_FAILED: XBT_DEBUG("SIMIX_execution_finished: host '%s' failed", simcall->issuer->smx_host->name); - SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed"); + simcall->issuer->context->iwannadie = 1; + //SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed"); break; case SIMIX_CANCELED: @@ -360,7 +361,7 @@ void SIMIX_execution_finish(smx_action_t action) xbt_die("Internal error in SIMIX_execution_finish: unexpected action state %d", (int)action->state); } - simcall->issuer->waiting_action = NULL; + simcall->issuer->waiting_action = NULL; simcall->host_execution_wait.result = action->state; SIMIX_simcall_answer(simcall); } diff --git a/src/simix/smx_network.c b/src/simix/smx_network.c index 28937f42a5..0d7257fa59 100644 --- a/src/simix/smx_network.c +++ b/src/simix/smx_network.c @@ -589,14 +589,16 @@ void SIMIX_comm_finish(smx_action_t action) case SIMIX_SRC_HOST_FAILURE: if (simcall->issuer == action->comm.src_proc) - SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed"); + simcall->issuer->context->iwannadie = 1; +// SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed"); else SMX_EXCEPTION(simcall->issuer, network_error, 0, "Remote peer failed"); break; case SIMIX_DST_HOST_FAILURE: if (simcall->issuer == action->comm.dst_proc) - SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed"); + simcall->issuer->context->iwannadie = 1; +// SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed"); else SMX_EXCEPTION(simcall->issuer, network_error, 0, "Remote peer failed"); break;