Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix simcall_blocking returning a value.
[simgrid.git] / src / s4u / s4u_ConditionVariable.cpp
index a59726f..877bfdd 100644 (file)
@@ -32,7 +32,7 @@ void ConditionVariable::wait(MutexPtr lock)
 {
   kernel::actor::ActorImpl* issuer = kernel::actor::ActorImpl::self();
   mc::ConditionWaitSimcall observer{issuer, pimpl_, lock->pimpl_};
-  kernel::actor::simcall_blocking<void>(
+  kernel::actor::simcall_blocking(
       [&observer] { observer.get_cond()->wait(observer.get_mutex(), -1.0, observer.get_issuer()); }, &observer);
 }
 
@@ -40,7 +40,7 @@ void ConditionVariable::wait(const std::unique_lock<Mutex>& lock)
 {
   kernel::actor::ActorImpl* issuer = kernel::actor::ActorImpl::self();
   mc::ConditionWaitSimcall observer{issuer, pimpl_, lock.mutex()->pimpl_};
-  kernel::actor::simcall_blocking<void>(
+  kernel::actor::simcall_blocking(
       [&observer] { observer.get_cond()->wait(observer.get_mutex(), -1.0, observer.get_issuer()); }, &observer);
 }
 
@@ -52,10 +52,9 @@ std::cv_status s4u::ConditionVariable::wait_for(const std::unique_lock<Mutex>& l
 
   kernel::actor::ActorImpl* issuer = kernel::actor::ActorImpl::self();
   mc::ConditionWaitSimcall observer{issuer, pimpl_, lock.mutex()->pimpl_, timeout};
-  kernel::actor::simcall_blocking<void>(
+  bool timed_out = kernel::actor::simcall_blocking(
       [&observer] { observer.get_cond()->wait(observer.get_mutex(), observer.get_timeout(), observer.get_issuer()); },
       &observer);
-  bool timed_out = observer.get_result();
   if (timed_out) {
     // If we reached the timeout, we have to take the lock again:
     lock.mutex()->lock();