- /* refcounting of the intrusive_ptr is delegated to the implementation object */
- friend void intrusive_ptr_add_ref(Mutex* mutex)
- {
- xbt_assert(mutex);
- SIMIX_mutex_ref(mutex->mutex_);
- }
- friend void intrusive_ptr_release(Mutex* mutex)
- {
- xbt_assert(mutex);
- SIMIX_mutex_unref(mutex->mutex_);
- }
-public:
- using Ptr = boost::intrusive_ptr<Mutex>;
+ simgrid::kernel::activity::MutexImpl* pimpl_;
+ explicit Mutex(simgrid::kernel::activity::MutexImpl* mutex) : pimpl_(mutex) {}
+
+ /* refcounting */
+ friend XBT_PUBLIC void intrusive_ptr_add_ref(Mutex* mutex);
+ friend XBT_PUBLIC void intrusive_ptr_release(Mutex* mutex);