From 8a67f74657d886d80a3512beb8b9b522fd3e9d13 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Thu, 12 May 2016 20:18:30 +0200 Subject: [PATCH] move some content to the SynchroRaw dtor --- src/simix/SynchroRaw.cpp | 4 ++++ src/simix/SynchroRaw.hpp | 1 + src/simix/smx_synchro.cpp | 1 - 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/simix/SynchroRaw.cpp b/src/simix/SynchroRaw.cpp index 872cf47b52..3bb881d543 100644 --- a/src/simix/SynchroRaw.cpp +++ b/src/simix/SynchroRaw.cpp @@ -9,6 +9,10 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_synchro); +simgrid::simix::Raw::~Raw() +{ + sleep->unref(); +} void simgrid::simix::Raw::suspend() { /* The suspension of raw synchros is delayed to when the process is rescheduled. */ diff --git a/src/simix/SynchroRaw.hpp b/src/simix/SynchroRaw.hpp index 3c920fab89..7086bd32ae 100644 --- a/src/simix/SynchroRaw.hpp +++ b/src/simix/SynchroRaw.hpp @@ -15,6 +15,7 @@ namespace simix { /** Used to implement mutexes, semaphores and conditions */ XBT_PUBLIC_CLASS Raw : public Synchro { public: + ~Raw(); void suspend() override; void resume() override; void post() override; diff --git a/src/simix/smx_synchro.cpp b/src/simix/smx_synchro.cpp index 442695e03c..cb9212aab6 100644 --- a/src/simix/smx_synchro.cpp +++ b/src/simix/smx_synchro.cpp @@ -69,7 +69,6 @@ void SIMIX_synchro_destroy(smx_synchro_t synchro) XBT_DEBUG("Destroying synchro %p", synchro); simgrid::simix::Raw *raw = static_cast(synchro); - raw->sleep->unref(); delete raw; } -- 2.20.1