X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9a28137e0100255c9e849a39167590cb2305aa82..d9d29f9c45022aeb18af277c995291c0547bbc0d:/src/msg/msg_mailbox.cpp diff --git a/src/msg/msg_mailbox.cpp b/src/msg/msg_mailbox.cpp index 27fbaae27f..218671054d 100644 --- a/src/msg/msg_mailbox.cpp +++ b/src/msg/msg_mailbox.cpp @@ -10,7 +10,8 @@ #include "simgrid/msg.h" #include "msg_private.h" -#include "simgrid/s4u/mailbox.hpp" +#include "simgrid/s4u/Actor.hpp" +#include "simgrid/s4u/Mailbox.hpp" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_mailbox, msg, "Logging specific to MSG (mailbox)"); @@ -25,68 +26,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_mailbox, msg, "Logging specific to MSG (mail */ void MSG_mailbox_set_async(const char *alias){ simgrid::s4u::MailboxPtr mailbox = simgrid::s4u::Mailbox::byName(alias); - - simcall_mbox_set_receiver(mailbox->getImpl(), SIMIX_process_self()); + mailbox->setReceiver(simgrid::s4u::Actor::self()); XBT_VERB("%s mailbox set to receive eagerly for myself\n",alias); } -/** \ingroup msg_mailbox_management - * \brief Get a task from a mailbox on a given host at a given rate - * - * \param mailbox The mailbox where the task was sent - * \param task a memory location for storing a #msg_task_t. - * \param host a #msg_host_t host from where the task was sent - * \param timeout a timeout - * \param rate a rate - - * \return Returns - * #MSG_OK if the task was successfully received, - * #MSG_HOST_FAILURE, or #MSG_TRANSFER_FAILURE otherwise. - */ -msg_error_t MSG_mailbox_get_task_ext_bounded(msg_mailbox_t mailbox, msg_task_t * task, msg_host_t host, double timeout, - double rate) -{ - msg_error_t ret = MSG_OK; - /* We no longer support getting a task from a specific host */ - if (host) - THROW_UNIMPLEMENTED; - - TRACE_msg_task_get_start(); - double start_time = MSG_get_clock(); - - /* Sanity check */ - xbt_assert(task, "Null pointer for the task storage"); - - if (*task) - XBT_WARN("Asked to write the received task in a non empty struct -- proceeding."); - - /* Try to receive it by calling SIMIX network layer */ - try { - simcall_comm_recv(MSG_process_self(), mailbox->getImpl(), task, nullptr, nullptr, nullptr, nullptr, timeout, rate); - XBT_DEBUG("Got task %s from %s",(*task)->name,mailbox->getName()); - (*task)->simdata->setNotUsed(); - } - catch (xbt_ex& e) { - switch (e.category) { - case cancel_error: - ret = MSG_HOST_FAILURE; - break; - case network_error: - ret = MSG_TRANSFER_FAILURE; - break; - case timeout_error: - ret = MSG_TIMEOUT; - break; - case host_error: - ret = MSG_HOST_FAILURE; - break; - default: - throw; - } - } - - if (ret != MSG_HOST_FAILURE && ret != MSG_TRANSFER_FAILURE && ret != MSG_TIMEOUT) { - TRACE_msg_task_get_end(start_time, *task); - } - MSG_RETURN(ret); -}