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;
}
}
+ if (surf_workstation_model->extension.
+ workstation.get_state(simcall->issuer->smx_host->host) != SURF_RESOURCE_ON) {
+ simcall->issuer->context->iwannadie = 1;
+ }
+
simcall->issuer->waiting_action = NULL;
xbt_fifo_remove(simcall->issuer->comms, action);
SIMIX_simcall_answer(simcall);