X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/69f8eb4aea98b46c7df3ca9a44bf46fc1ba2348b..b372d23d3d8818b4547ef207f43b45709298a002:/src/s4u/s4u_Exec.cpp diff --git a/src/s4u/s4u_Exec.cpp b/src/s4u/s4u_Exec.cpp index 0b017ded7b..9bbf840f50 100644 --- a/src/s4u/s4u_Exec.cpp +++ b/src/s4u/s4u_Exec.cpp @@ -14,8 +14,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_exec, s4u_activity, "S4U asynchronous execut namespace simgrid { namespace s4u { -xbt::signal Exec::on_start; -xbt::signal Exec::on_completion; +xbt::signal Exec::on_start; +xbt::signal Exec::on_completion; Exec::Exec() { @@ -35,18 +35,18 @@ Exec* Exec::wait_for(double timeout) kernel::actor::ActorImpl* issuer = Actor::self()->get_impl(); kernel::actor::simcall_blocking([this, issuer, timeout] { this->get_impl()->wait_for(issuer, timeout); }); state_ = State::FINISHED; - on_completion(*Actor::self(), *this); + on_completion(*this); this->release_dependencies(); return this; } int Exec::wait_any_for(std::vector* execs, double timeout) { - auto rexecs = std::make_unique(execs->size()); - std::transform(begin(*execs), end(*execs), rexecs.get(), + std::vector rexecs(execs->size()); + std::transform(begin(*execs), end(*execs), begin(rexecs), [](const ExecPtr& exec) { return static_cast(exec->pimpl_.get()); }); - int changed_pos = simcall_execution_waitany_for(rexecs.get(), execs->size(), timeout); + int changed_pos = simcall_execution_waitany_for(rexecs.data(), rexecs.size(), timeout); if (changed_pos != -1) execs->at(changed_pos)->release_dependencies(); return changed_pos; @@ -185,7 +185,7 @@ Exec* Exec::start() pimpl_->suspend(); state_ = State::STARTED; - on_start(*Actor::self(), *this); + on_start(*this); return this; }