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
*
*/
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;
}
/**
return comm_ready;
}
-smx_activity_t Mailbox::front()
+kernel::activity::CommImplPtr Mailbox::front()
{
return pimpl_->comm_queue_.empty() ? nullptr : pimpl_->comm_queue_.front();
}