X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9e34d715bca0465a05c87301f6d0238d1a516c74..13cf919b6231022290ec292eb1fb48abbb39f8eb:/src/kernel/activity/BarrierImpl.cpp diff --git a/src/kernel/activity/BarrierImpl.cpp b/src/kernel/activity/BarrierImpl.cpp index 98ccd34b5b..fda107fe48 100644 --- a/src/kernel/activity/BarrierImpl.cpp +++ b/src/kernel/activity/BarrierImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2023. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -8,9 +8,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(ker_barrier, ker_synchro, "Barrier kernel-space implementation"); -namespace simgrid { -namespace kernel { -namespace activity { +namespace simgrid::kernel::activity { /* -------- Acquisition -------- */ bool BarrierAcquisitionImpl::test(actor::ActorImpl*) @@ -30,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()); @@ -57,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 @@ -66,6 +69,4 @@ BarrierAcquisitionImplPtr BarrierImpl::acquire_async(actor::ActorImpl* issuer) return res; } -} // namespace activity -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::activity