Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make ConditionVariable::~ConditionVariable() private.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 15 Mar 2021 22:10:45 +0000 (23:10 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 15 Mar 2021 22:10:45 +0000 (23:10 +0100)
This is a followup to commit 222e031aa69b85a660b37e558115375d44ec3f68
"Use ConditionVariable::create() for sg_cond_init()."

include/simgrid/forward.h
include/simgrid/s4u/ConditionVariable.hpp

index e7e55e2..3701f07 100644 (file)
@@ -116,6 +116,9 @@ namespace activity {
   XBT_PUBLIC void intrusive_ptr_release(ActivityImpl* activity);
 
   class ConditionVariableImpl;
+  using ConditionVariableImplPtr = boost::intrusive_ptr<ConditionVariableImpl>;
+  XBT_PUBLIC void intrusive_ptr_add_ref(ConditionVariableImpl* cond);
+  XBT_PUBLIC void intrusive_ptr_release(ConditionVariableImpl* cond);
 
   class CommImpl;
   using CommImplPtr = boost::intrusive_ptr<CommImpl>;
index e18b846..de52bde 100644 (file)
@@ -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;