-XBT_PUBLIC_CLASS Mutex {
-friend ConditionVariable;
-private:
- friend simgrid::simix::Mutex;
- simgrid::simix::Mutex* mutex_;
- Mutex(simgrid::simix::Mutex* mutex) : mutex_(mutex) {}
+class XBT_PUBLIC Mutex {
+ friend ConditionVariable;
+ friend simgrid::kernel::activity::MutexImpl;
+ simgrid::kernel::activity::MutexImpl* mutex_;
+ explicit Mutex(simgrid::kernel::activity::MutexImpl * mutex) : mutex_(mutex) {}
+
+ /* refcounting */
+ friend XBT_PUBLIC void intrusive_ptr_add_ref(Mutex* mutex);
+ friend XBT_PUBLIC void intrusive_ptr_release(Mutex* mutex);