X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b731a7fcd7f53221f92aadc3bd81a88c24f950ff..fb8fb96b496b4c3ca190ff4a42b29eafd67b1278:/src/s4u/s4u_Mailbox.cpp diff --git a/src/s4u/s4u_Mailbox.cpp b/src/s4u/s4u_Mailbox.cpp index ffbfb69ebc..abbf92e21a 100644 --- a/src/s4u/s4u_Mailbox.cpp +++ b/src/s4u/s4u_Mailbox.cpp @@ -44,6 +44,15 @@ bool Mailbox::listen() return not this->empty() || (pimpl_->permanent_receiver_ && not pimpl_->done_comm_queue_.empty()); } +aid_t Mailbox::listen_from() +{ + kernel::activity::CommImplPtr comm = front(); + if (comm && comm->src_actor_) + return comm->src_actor_->get_pid(); + else + return -1; +} + bool Mailbox::ready() { bool comm_ready = false; @@ -210,7 +219,7 @@ sg_comm_t sg_mailbox_get_async(sg_mailbox_t mailbox, void** data) void sg_mailbox_put(sg_mailbox_t mailbox, void* payload, long simulated_size_in_bytes) { - return mailbox->put(payload, simulated_size_in_bytes); + mailbox->put(payload, simulated_size_in_bytes); } sg_comm_t sg_mailbox_put_async(sg_mailbox_t mailbox, void* payload, long simulated_size_in_bytes) @@ -219,3 +228,10 @@ sg_comm_t sg_mailbox_put_async(sg_mailbox_t mailbox, void* payload, long simulat comm->add_ref(); return comm.get(); } + +sg_comm_t sg_mailbox_put_init(sg_mailbox_t mailbox, void* payload, long simulated_size_in_bytes) +{ + auto comm = mailbox->put_init(payload, simulated_size_in_bytes); + comm->add_ref(); + return comm.get(); +}