From 97264d27500aff896d5ef16db2c532fadc0c9c9c Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Mon, 15 Mar 2021 23:10:45 +0100 Subject: [PATCH] Make ConditionVariable::~ConditionVariable() private. This is a followup to commit 222e031aa69b85a660b37e558115375d44ec3f68 "Use ConditionVariable::create() for sg_cond_init()." --- include/simgrid/forward.h | 3 +++ include/simgrid/s4u/ConditionVariable.hpp | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/simgrid/forward.h b/include/simgrid/forward.h index e7e55e26bd..3701f07a31 100644 --- a/include/simgrid/forward.h +++ b/include/simgrid/forward.h @@ -116,6 +116,9 @@ namespace activity { XBT_PUBLIC void intrusive_ptr_release(ActivityImpl* activity); class ConditionVariableImpl; + using ConditionVariableImplPtr = boost::intrusive_ptr; + XBT_PUBLIC void intrusive_ptr_add_ref(ConditionVariableImpl* cond); + XBT_PUBLIC void intrusive_ptr_release(ConditionVariableImpl* cond); class CommImpl; using CommImplPtr = boost::intrusive_ptr; diff --git a/include/simgrid/s4u/ConditionVariable.hpp b/include/simgrid/s4u/ConditionVariable.hpp index e18b846020..de52bde921 100644 --- a/include/simgrid/s4u/ConditionVariable.hpp +++ b/include/simgrid/s4u/ConditionVariable.hpp @@ -26,11 +26,13 @@ namespace s4u { class XBT_PUBLIC ConditionVariable { private: friend kernel::activity::ConditionVariableImpl; + friend void kernel::activity::intrusive_ptr_release(kernel::activity::ConditionVariableImpl* cond); + kernel::activity::ConditionVariableImpl* const pimpl_; -#ifndef DOXYGEN explicit ConditionVariable(kernel::activity::ConditionVariableImpl* cond) : pimpl_(cond) {} - + ~ConditionVariable() = default; +#ifndef DOXYGEN ConditionVariable(ConditionVariable const&) = delete; ConditionVariable& operator=(ConditionVariable const&) = delete; -- 2.20.1