A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
Implement SemaphoreImpl::acquire_async (timeouts are allowed)
[simgrid.git]
/
src
/
s4u
/
s4u_Semaphore.cpp
diff --git
a/src/s4u/s4u_Semaphore.cpp
b/src/s4u/s4u_Semaphore.cpp
index
05a203c
..
d0a1b79
100644
(file)
--- 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()