From: SUTER Frederic Date: Sun, 26 Dec 2021 11:35:51 +0000 (+0100) Subject: partially plug leak. Do not see why one remains :-/ X-Git-Tag: v3.30~166 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/a5be14f7cdedb903f4c758ca646ecc5bb41118f8 partially plug leak. Do not see why one remains :-/ --- diff --git a/src/s4u/s4u_Activity.cpp b/src/s4u/s4u_Activity.cpp index 8c22f5871e..ace662e160 100644 --- a/src/s4u/s4u_Activity.cpp +++ b/src/s4u/s4u_Activity.cpp @@ -76,8 +76,10 @@ Activity* Activity::cancel() { kernel::actor::simcall([this] { XBT_HERE(); - pimpl_->cancel(); + if (pimpl_) + pimpl_->cancel(); }); + release_dependencies(); complete(State::CANCELED); return this; } diff --git a/src/simdag/sd_dotloader.cpp b/src/simdag/sd_dotloader.cpp index 4a54f7c458..c7494d0ddf 100644 --- a/src/simdag/sd_dotloader.cpp +++ b/src/simdag/sd_dotloader.cpp @@ -122,6 +122,8 @@ std::vector create_DAG_from_dot(const std::string& filename) if (not check_for_cycle(dag)) { std::string base = simgrid::xbt::Path(filename).get_base_name(); XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.", base.c_str()); + for (const auto& a : dag) + a->cancel(); dag.clear(); }