A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix clang build
[simgrid.git]
/
src
/
s4u
/
s4u_mailbox.cpp
diff --git
a/src/s4u/s4u_mailbox.cpp
b/src/s4u/s4u_mailbox.cpp
index
ed78c03
..
2882051
100644
(file)
--- a/
src/s4u/s4u_mailbox.cpp
+++ b/
src/s4u/s4u_mailbox.cpp
@@
-22,10
+22,10
@@
const char *Mailbox::name() {
MailboxPtr Mailbox::byName(const char*name)
{
MailboxPtr Mailbox::byName(const char*name)
{
-
simix::MailboxImpl* mbox = simix
::MailboxImpl::byNameOrNull(name);
+
kernel::activity::MailboxImpl* mbox = kernel::activity
::MailboxImpl::byNameOrNull(name);
if (mbox == nullptr) {
mbox = simix::kernelImmediate([name] {
if (mbox == nullptr) {
mbox = simix::kernelImmediate([name] {
- return
simix
::MailboxImpl::byNameOrCreate(name);
+ return
kernel::activity
::MailboxImpl::byNameOrCreate(name);
});
}
return MailboxPtr(&mbox->piface_, true);
});
}
return MailboxPtr(&mbox->piface_, true);
@@
-41,6
+41,11
@@
bool Mailbox::empty()
return pimpl_->comm_queue.empty();
}
return pimpl_->comm_queue.empty();
}
+bool Mailbox::listen()
+{
+ return not this->empty() || (pimpl_->permanent_receiver && not pimpl_->done_comm_queue.empty());
+}
+
smx_activity_t Mailbox::front()
{
return pimpl_->comm_queue.empty() ? nullptr : pimpl_->comm_queue.front();
smx_activity_t Mailbox::front()
{
return pimpl_->comm_queue.empty() ? nullptr : pimpl_->comm_queue.front();
@@
-54,9
+59,9
@@
void Mailbox::setReceiver(ActorPtr actor) {
/** @brief get the receiver (process associated to the mailbox) */
ActorPtr Mailbox::receiver() {
/** @brief get the receiver (process associated to the mailbox) */
ActorPtr Mailbox::receiver() {
- if(pimpl_->permanent_receiver == nullptr)
+ if
(pimpl_->permanent_receiver == nullptr)
return ActorPtr();
return ActorPtr();
- return
ActorPtr(&pimpl_->permanent_receiver->getIface()
);
+ return
pimpl_->permanent_receiver->iface(
);
}
}
}
}