X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5ed37babb2fa9097abe82df299c0aa259ed84d5a..35a644bdf9d0c5603c9483f03f913e4a649638d6:/src/s4u/s4u_Mutex.cpp?ds=sidebyside diff --git a/src/s4u/s4u_Mutex.cpp b/src/s4u/s4u_Mutex.cpp index 051f11c153..72c2481736 100644 --- a/src/s4u/s4u_Mutex.cpp +++ b/src/s4u/s4u_Mutex.cpp @@ -55,10 +55,18 @@ bool Mutex::try_lock() * * See @ref s4u_raii. */ -MutexPtr Mutex::create() +MutexPtr Mutex::create(bool recursive) { - auto* mutex = new kernel::activity::MutexImpl(); - return MutexPtr(&mutex->mutex(), false); + auto* mutex = new kernel::activity::MutexImpl(recursive); + return MutexPtr(&mutex->get_iface(), false); +} + +Actor* Mutex::get_owner() +{ + auto* owner = pimpl_->get_owner(); + if (owner == nullptr) + return nullptr; + return owner->get_ciface(); } /* refcounting of the intrusive_ptr is delegated to the implementation object */