From a5be14f7cdedb903f4c758ca646ecc5bb41118f8 Mon Sep 17 00:00:00 2001 From: SUTER Frederic Date: Sun, 26 Dec 2021 12:35:51 +0100 Subject: [PATCH] partially plug leak. Do not see why one remains :-/ --- src/s4u/s4u_Activity.cpp | 4 +++- src/simdag/sd_dotloader.cpp | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) 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(); } -- 2.20.1