X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/32892d0df7206a7c14ace5a13f985df1e0a9249a..85b1e794f37ae5b1891444f53b9b6cc8faee4f0b:/src/msg/msg_gos.cpp diff --git a/src/msg/msg_gos.cpp b/src/msg/msg_gos.cpp index 9b434b404b..65b78093c9 100644 --- a/src/msg/msg_gos.cpp +++ b/src/msg/msg_gos.cpp @@ -78,18 +78,15 @@ msg_error_t MSG_parallel_task_execute_with_timeout(msg_task_t task, double timeo simdata->setNotUsed(); XBT_DEBUG("Execution task '%s' finished in state %d", task->name, (int)comp_state); - } - catch (xbt_ex& e) { + } catch (simgrid::HostFailureException& e) { + status = MSG_HOST_FAILURE; + } catch (simgrid::TimeoutError& e) { + status = MSG_TIMEOUT; + } catch (xbt_ex& e) { switch (e.category) { case cancel_error: status = MSG_TASK_CANCELED; break; - case host_error: - status = MSG_HOST_FAILURE; - break; - case timeout_error: - status = MSG_TIMEOUT; - break; default: throw; } @@ -280,19 +277,18 @@ msg_error_t MSG_task_receive_ext_bounded(msg_task_t * task, const char *alias, d timeout, rate); XBT_DEBUG("Got task %s from %s", (*task)->name, mailbox->get_cname()); (*task)->simdata->setNotUsed(); - } - catch (xbt_ex& e) { + } catch (simgrid::HostFailureException& e) { + ret = MSG_HOST_FAILURE; + } catch (simgrid::TimeoutError& e) { + ret = MSG_TIMEOUT; + } catch (xbt_ex& e) { switch (e.category) { - case host_error: case cancel_error: ret = MSG_HOST_FAILURE; break; case network_error: ret = MSG_TRANSFER_FAILURE; break; - case timeout_error: - ret = MSG_TIMEOUT; - break; default: throw; } @@ -484,6 +480,9 @@ int MSG_comm_test(msg_comm_t comm) /* I am the receiver */ (*comm->task_received)->simdata->setNotUsed(); } + } catch (simgrid::TimeoutError& e) { + comm->status = MSG_TIMEOUT; + finished = true; } catch (xbt_ex& e) { switch (e.category) { @@ -491,10 +490,6 @@ int MSG_comm_test(msg_comm_t comm) comm->status = MSG_TRANSFER_FAILURE; finished = true; break; - case timeout_error: - comm->status = MSG_TIMEOUT; - finished = true; - break; default: throw; } @@ -526,6 +521,9 @@ int MSG_comm_testany(xbt_dynar_t comms) msg_error_t status = MSG_OK; try { finished_index = simcall_comm_testany(s_comms.data(), s_comms.size()); + } catch (simgrid::TimeoutError& e) { + finished_index = e.value; + status = MSG_TIMEOUT; } catch (xbt_ex& e) { switch (e.category) { @@ -533,10 +531,6 @@ int MSG_comm_testany(xbt_dynar_t comms) finished_index = e.value; status = MSG_TRANSFER_FAILURE; break; - case timeout_error: - finished_index = e.value; - status = MSG_TIMEOUT; - break; default: throw; } @@ -585,15 +579,14 @@ msg_error_t MSG_comm_wait(msg_comm_t comm, double timeout) } /* FIXME: these functions are not traceable */ + } catch (simgrid::TimeoutError& e) { + comm->status = MSG_TIMEOUT; } catch (xbt_ex& e) { switch (e.category) { case network_error: comm->status = MSG_TRANSFER_FAILURE; break; - case timeout_error: - comm->status = MSG_TIMEOUT; - break; default: throw; } @@ -639,6 +632,9 @@ int MSG_comm_waitany(xbt_dynar_t comms) msg_error_t status = MSG_OK; try { finished_index = simcall_comm_waitany(s_comms, -1); + } catch (simgrid::TimeoutError& e) { + finished_index = e.value; + status = MSG_TIMEOUT; } catch(xbt_ex& e) { switch (e.category) { @@ -646,10 +642,6 @@ int MSG_comm_waitany(xbt_dynar_t comms) finished_index = e.value; status = MSG_TRANSFER_FAILURE; break; - case timeout_error: - finished_index = e.value; - status = MSG_TIMEOUT; - break; default: throw; } @@ -798,6 +790,8 @@ msg_error_t MSG_task_send_with_timeout(msg_task_t task, const char *alias, doubl simcall_set_category(comm, task->category); t_simdata->comm = boost::static_pointer_cast(comm); simcall_comm_wait(comm, timeout); + } catch (simgrid::TimeoutError& e) { + ret = MSG_TIMEOUT; } catch (xbt_ex& e) { switch (e.category) { @@ -807,9 +801,6 @@ msg_error_t MSG_task_send_with_timeout(msg_task_t task, const char *alias, doubl case network_error: ret = MSG_TRANSFER_FAILURE; break; - case timeout_error: - ret = MSG_TIMEOUT; - break; default: throw; }