X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/59716de74dad700cb3f12204524a63b895a39c27..f84705b633d5ebb1f5e71eaeac8204014285f225:/src/s4u/s4u_Semaphore.cpp diff --git a/src/s4u/s4u_Semaphore.cpp b/src/s4u/s4u_Semaphore.cpp index 05a203c9a7..d0a1b79598 100644 --- a/src/s4u/s4u_Semaphore.cpp +++ b/src/s4u/s4u_Semaphore.cpp @@ -22,7 +22,7 @@ void Semaphore::acquire() { kernel::actor::ActorImpl* issuer = kernel::actor::ActorImpl::self(); kernel::actor::SemAcquireSimcall observer{issuer, pimpl_}; - kernel::actor::simcall_blocking([&observer] { observer.get_sem()->acquire(observer.get_issuer(), -1.0); }, &observer); + kernel::actor::simcall_blocking([this, issuer] { pimpl_->acquire_async(issuer)->wait_for(issuer, -1.0); }, &observer); } bool Semaphore::acquire_timeout(double timeout) @@ -30,7 +30,7 @@ bool Semaphore::acquire_timeout(double timeout) kernel::actor::ActorImpl* issuer = kernel::actor::ActorImpl::self(); kernel::actor::SemAcquireSimcall observer{issuer, pimpl_, timeout}; return kernel::actor::simcall_blocking( - [&observer] { observer.get_sem()->acquire(observer.get_issuer(), observer.get_timeout()); }, &observer); + [this, issuer, timeout] { pimpl_->acquire_async(issuer)->wait_for(issuer, timeout); }, &observer); } void Semaphore::release()