Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
save a cast
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Wed, 20 Feb 2019 16:04:52 +0000 (17:04 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Wed, 20 Feb 2019 16:04:52 +0000 (17:04 +0100)
include/simgrid/s4u/Mailbox.hpp
src/msg/msg_gos.cpp
src/s4u/s4u_Mailbox.cpp

index b0bac97..c009267 100644 (file)
@@ -50,7 +50,7 @@ public:
   bool ready();
 
   /** Gets the first element in the queue (without dequeuing it), or nullptr if none is there */
-  smx_activity_t front();
+  kernel::activity::CommImplPtr front();
 
   /** Declare that the specified actor is a permanent receiver on that mailbox
    *
index 6fa750c..877cfcf 100644 (file)
@@ -792,14 +792,9 @@ msg_error_t MSG_task_send_with_timeout_bounded(msg_task_t task, const char *alia
  */
 int MSG_task_listen_from(const char *alias)
 {
-  simgrid::s4u::MailboxPtr mbox = simgrid::s4u::Mailbox::by_name(alias);
-  simgrid::kernel::activity::CommImplPtr comm =
-      boost::static_pointer_cast<simgrid::kernel::activity::CommImpl>(mbox->front());
+  simgrid::kernel::activity::CommImplPtr comm = simgrid::s4u::Mailbox::by_name(alias)->front();
 
-  if (not comm)
-    return -1;
-
-  return MSG_process_get_PID(static_cast<msg_task_t>(comm->src_buff_)->simdata->sender);
+  return comm ? MSG_process_get_PID(static_cast<msg_task_t>(comm->src_buff_)->simdata->sender) : -1;
 }
 
 /**
index 704d468..52a0874 100644 (file)
@@ -56,7 +56,7 @@ bool Mailbox::ready()
   return comm_ready;
 }
 
-smx_activity_t Mailbox::front()
+kernel::activity::CommImplPtr Mailbox::front()
 {
   return pimpl_->comm_queue_.empty() ? nullptr : pimpl_->comm_queue_.front();
 }