X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d8eb62b207b566949a0d9ce649a7b21e226b9168..66c9e04ef6dbd72bb5dbc76dfaeb7ed02d6a8c57:/src/s4u/s4u_Mailbox.cpp diff --git a/src/s4u/s4u_Mailbox.cpp b/src/s4u/s4u_Mailbox.cpp index e33292eb30..8156900c05 100644 --- a/src/s4u/s4u_Mailbox.cpp +++ b/src/s4u/s4u_Mailbox.cpp @@ -43,6 +43,18 @@ bool Mailbox::listen() return not this->empty() || (pimpl_->permanent_receiver_ && not pimpl_->done_comm_queue_.empty()); } +bool Mailbox::ready() +{ + bool comm_ready = false; + if (not pimpl_->comm_queue_.empty()) { + comm_ready = pimpl_->comm_queue_.front()->state_ == SIMIX_DONE; + + } else if (pimpl_->permanent_receiver_ && not pimpl_->done_comm_queue_.empty()) { + comm_ready = pimpl_->done_comm_queue_.front()->state_ == SIMIX_DONE; + } + return comm_ready; +} + smx_activity_t Mailbox::front() { return pimpl_->comm_queue_.empty() ? nullptr : pimpl_->comm_queue_.front();