py::register_exception<simgrid::StorageFailureException>(m, "StorageFailureException");
py::register_exception<simgrid::VmFailureException>(m, "VmFailureException");
py::register_exception<simgrid::CancelException>(m, "CancelException");
-
+
/* this_actor namespace */
m.def_submodule("this_actor", "Bindings of the s4u::this_actor namespace. See the C++ documentation for details.")
.def(
set_state(State::SRC_TIMEOUT);
else if (dst_timeout_ && dst_timeout_->get_state() == resource::Action::State::FINISHED)
set_state(State::DST_TIMEOUT);
- else if ((from_ && !from_->is_on()) || (src_timeout_ && src_timeout_->get_state() == resource::Action::State::FAILED))
+ else if ((from_ && not from_->is_on()) || (src_timeout_ && src_timeout_->get_state() == resource::Action::State::FAILED))
set_state(State::SRC_HOST_FAILURE);
- else if ((to_ && !to_->is_on()) || (dst_timeout_ && dst_timeout_->get_state() == resource::Action::State::FAILED))
+ else if ((to_ && not to_->is_on()) || (dst_timeout_ && dst_timeout_->get_state() == resource::Action::State::FAILED))
set_state(State::DST_HOST_FAILURE);
else if (surf_action_ && surf_action_->get_state() == resource::Action::State::FAILED) {
set_state(State::LINK_FAILURE);
- } else if(get_state() == State::RUNNING ) {
+ } else if (get_state() == State::RUNNING) {
xbt_assert(from_ && from_->is_on());
xbt_assert(to_ && to_->is_on());
set_state(State::DONE);
unsigned MailboxImpl::next_id_ = 0;
-
-MailboxImpl::~MailboxImpl() {
+MailboxImpl::~MailboxImpl()
+{
clear();
set_receiver(nullptr);
}
-
/** @brief set the receiver of the mailbox to allow eager sends
* @param actor The receiving dude
*/
void MailboxImpl::set_receiver(s4u::ActorPtr actor)
{
- if(this->permanent_receiver_) {
- std::vector<MailboxImpl*>& mboxes=this->permanent_receiver_->mailboxes;
- mboxes.erase(std::remove(mboxes.begin(), mboxes.end(),this), mboxes.end());
+ if (this->permanent_receiver_) {
+ std::vector<MailboxImpl*>& mboxes = this->permanent_receiver_->mailboxes;
+ mboxes.erase(std::remove(mboxes.begin(), mboxes.end(), this), mboxes.end());
}
if (actor != nullptr)
this->permanent_receiver_ = actor->get_impl();
else
this->permanent_receiver_ = nullptr;
-
}
/** @brief Pushes a communication activity into a mailbox
* @param comm What to add
}
xbt_die("Comm %p not found in mailbox %s", comm.get(), this->get_cname());
}
-
+
/** @brief Removes all communication activities from a mailbox
-*/
+ */
void MailboxImpl::clear()
{
- for( auto comm : done_comm_queue_ ) {
+ for (auto comm : done_comm_queue_) {
comm->cancel();
comm->set_state(State::DST_HOST_FAILURE);
}
done_comm_queue_.clear();
- //CommImpl::cancel() will remove the comm from the mailbox..
- while( !comm_queue_.empty() ) {
- auto comm=comm_queue_.back();
- if(comm->get_state() == State::WAITING && !comm->detached()) {
+ // CommImpl::cancel() will remove the comm from the mailbox..
+ while (not comm_queue_.empty()) {
+ auto comm = comm_queue_.back();
+ if (comm->get_state() == State::WAITING && not comm->detached()) {
comm->cancel();
comm->set_state(State::DST_HOST_FAILURE);
} else
comm_queue_.pop_back();
}
-
}
CommImplPtr MailboxImpl::iprobe(int type, bool (*match_fun)(void*, void*, CommImpl*), void* data)
activity->cancel();
activities_.clear();
- while(!mailboxes.empty())
+ while (not mailboxes.empty())
mailboxes.back()->set_receiver(nullptr);
XBT_DEBUG("%s@%s(%ld) should not run anymore", get_cname(), get_host()->get_cname(), get_pid());
activity->cancel();
activities_.clear();
- while(!mailboxes.empty())
+ while (not mailboxes.empty())
mailboxes.back()->set_receiver(nullptr);
// Forcefully kill the actor if its host is turned off. Not a HostFailureException because you should not survive that