smx_mailbox_t mbox = simcall_mbox_get_by_name(name);
if (mbox == nullptr)
mbox = simcall_mbox_create(name);
- return MailboxPtr(&mbox->mbox_, true);
+ return MailboxPtr(&mbox->piface_, true);
}
bool Mailbox::empty() {
}
/** @brief get the receiver (process associated to the mailbox) */
-Actor& Mailbox::receiver() {
- return pimpl_->permanent_receiver->actor();
+ActorPtr Mailbox::receiver() {
+ if(pimpl_->permanent_receiver == nullptr) return ActorPtr();
+ return ActorPtr(&pimpl_->permanent_receiver->actor());
}
}
void sg_mbox_setReceiver(sg_mbox_t mbox, smx_process_t process) {
mbox->setReceiver(&process->actor());
}
-smx_process_t sg_mbox_receiver(sg_mbox_t mbox) {
- return mbox->receiver().getInferior();
-}