From 13cf919b6231022290ec292eb1fb48abbb39f8eb Mon Sep 17 00:00:00 2001 From: Fred Suter Date: Thu, 23 Feb 2023 16:14:44 -0500 Subject: [PATCH] uniformization: call post that calls finish --- src/kernel/activity/BarrierImpl.cpp | 7 ++++++- src/kernel/activity/BarrierImpl.hpp | 4 +--- src/kernel/activity/MutexImpl.cpp | 9 +++++++-- src/kernel/activity/MutexImpl.hpp | 4 +--- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/kernel/activity/BarrierImpl.cpp b/src/kernel/activity/BarrierImpl.cpp index af28aedd0b..fda107fe48 100644 --- a/src/kernel/activity/BarrierImpl.cpp +++ b/src/kernel/activity/BarrierImpl.cpp @@ -28,6 +28,11 @@ void BarrierAcquisitionImpl::wait_for(actor::ActorImpl* issuer, double timeout) // Already in the queue } } +void BarrierAcquisitionImpl::post() +{ + finish(); +} + void BarrierAcquisitionImpl::finish() { xbt_assert(simcalls_.size() == 1, "Unexpected number of simcalls waiting: %zu", simcalls_.size()); @@ -55,7 +60,7 @@ BarrierAcquisitionImplPtr BarrierImpl::acquire_async(actor::ActorImpl* issuer) for (auto const& acqui : ongoing_acquisitions_) { acqui->granted_ = true; if (acqui == acqui->get_issuer()->waiting_synchro_) - acqui->finish(); + acqui->post(); // else, the issuer is not blocked on this acquisition so no need to release it } ongoing_acquisitions_.clear(); // Rearm the barier for subsequent uses diff --git a/src/kernel/activity/BarrierImpl.hpp b/src/kernel/activity/BarrierImpl.hpp index dd59753329..7455c9d772 100644 --- a/src/kernel/activity/BarrierImpl.hpp +++ b/src/kernel/activity/BarrierImpl.hpp @@ -32,9 +32,7 @@ public: bool test(actor::ActorImpl* issuer = nullptr) override; void wait_for(actor::ActorImpl* issuer, double timeout) override; - void post() override - { /* no model action */ - } + void post() override; void finish() override; void set_exception(actor::ActorImpl* issuer) override { /* nothing to do */ diff --git a/src/kernel/activity/MutexImpl.cpp b/src/kernel/activity/MutexImpl.cpp index 27a7bf9c00..1c9235b95c 100644 --- a/src/kernel/activity/MutexImpl.cpp +++ b/src/kernel/activity/MutexImpl.cpp @@ -25,11 +25,16 @@ void MutexAcquisitionImpl::wait_for(actor::ActorImpl* issuer, double timeout) this->register_simcall(&issuer_->simcall_); // Block on that acquisition if (mutex_->get_owner() == issuer_) { // I'm the owner - finish(); + post(); } else { // Already in the queue } } +void MutexAcquisitionImpl::post() +{ + finish(); +} + void MutexAcquisitionImpl::finish() { xbt_assert(simcalls_.size() == 1, "Unexpected number of simcalls waiting: %zu", simcalls_.size()); @@ -94,7 +99,7 @@ void MutexImpl::unlock(actor::ActorImpl* issuer) owner_ = acq->get_issuer(); if (acq == owner_->waiting_synchro_) - acq->finish(); + acq->post(); // else, the issuer is not blocked on this acquisition so no need to release it } else { diff --git a/src/kernel/activity/MutexImpl.hpp b/src/kernel/activity/MutexImpl.hpp index a614a775db..66851a6a19 100644 --- a/src/kernel/activity/MutexImpl.hpp +++ b/src/kernel/activity/MutexImpl.hpp @@ -50,9 +50,7 @@ public: bool test(actor::ActorImpl* issuer = nullptr) override; void wait_for(actor::ActorImpl* issuer, double timeout) override; - void post() override - { /* no model action */ - } + void post() override; void finish() override; void set_exception(actor::ActorImpl* issuer) override { /* nothing to do */ -- 2.20.1