}
/** @brief get the receiver (process associated to the mailbox) */
Actor Mailbox::receiver() {
- return Actor(pimpl_->permanent_receiver);
+ return Actor(pimpl_->permanent_receiver.get());
}
}
if (mbox->permanent_receiver!=nullptr){
//this mailbox is for small messages, which have to be sent right now
other_synchro->state = SIMIX_READY;
- other_comm->dst_proc=mbox->permanent_receiver;
+ other_comm->dst_proc=mbox->permanent_receiver.get();
other_comm->ref();
mbox->done_comm_queue->push_back(other_synchro);
other_comm->mbox=mbox;
#include <deque>
#include <xbt/base.h>
+#include <boost/intrusive_ptr.hpp>
#include "simgrid/simix.h"
#include "popping_private.h"
typedef struct s_smx_mailbox {
char *name;
std::deque<smx_synchro_t> *comm_queue;
- smx_process_t permanent_receiver; //process which the mailbox is attached to
+ boost::intrusive_ptr<simgrid::simix::Process> permanent_receiver; //process which the mailbox is attached to
std::deque<smx_synchro_t> *done_comm_queue;//messages already received in the permanent receive mode
} s_smx_mailbox_t;
int tag, int (*match_fun)(void *, void *, smx_synchro_t), void *data);
#endif
-