X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0dfec40ad0e228992ff3095af88609068979496e..1ed0e64dc405fbb627ff8a7d7b70ac4ff81cd489:/src/s4u/s4u_Mailbox.cpp?ds=inline diff --git a/src/s4u/s4u_Mailbox.cpp b/src/s4u/s4u_Mailbox.cpp index e33292eb30..b2b60de515 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; + } + if (!comm_ready && 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();