Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make Mutex::~Mutex() private.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 15 Mar 2021 21:56:55 +0000 (22:56 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 15 Mar 2021 22:01:31 +0000 (23:01 +0100)
This is a followup to commit f4e9eed9a710cd589a2ab070348121e9c4c3a861
"Use Mutex::create() for sg_mutex_init()."

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

index 1eef471..d7179fd 100644 (file)
@@ -125,6 +125,8 @@ namespace activity {
   using IoImplPtr = boost::intrusive_ptr<IoImpl>;
   class MutexImpl;
   using MutexImplPtr = boost::intrusive_ptr<MutexImpl>;
+  XBT_PUBLIC void intrusive_ptr_add_ref(MutexImpl* mutex);
+  XBT_PUBLIC void intrusive_ptr_release(MutexImpl* mutex);
   class RawImpl;
   using RawImplPtr = boost::intrusive_ptr<RawImpl>;
   class SemaphoreImpl;
index f97eae8..4f2c486 100644 (file)
@@ -31,6 +31,7 @@ namespace s4u {
 class XBT_PUBLIC Mutex {
   friend ConditionVariable;
   friend kernel::activity::MutexImpl;
+  friend void kernel::activity::intrusive_ptr_release(kernel::activity::MutexImpl* mutex);
 
   kernel::activity::MutexImpl* const pimpl_;
   /* refcounting */
@@ -38,6 +39,7 @@ class XBT_PUBLIC Mutex {
   friend XBT_PUBLIC void intrusive_ptr_release(const Mutex* mutex);
 
   explicit Mutex(kernel::activity::MutexImpl* mutex) : pimpl_(mutex) {}
+  ~Mutex() = default;
 #ifndef DOXYGEN
   Mutex(Mutex const&) = delete;            // No copy constructor; Use MutexPtr instead
   Mutex& operator=(Mutex const&) = delete; // No direct assignment either. Use MutexPtr instead