A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1771c40
)
uniformization: call post that calls finish
author
Fred Suter
<suterf@ornl.gov>
Thu, 23 Feb 2023 21:14:44 +0000
(16:14 -0500)
committer
Fred Suter
<suterf@ornl.gov>
Thu, 23 Feb 2023 21:42:14 +0000
(16:42 -0500)
src/kernel/activity/BarrierImpl.cpp
patch
|
blob
|
history
src/kernel/activity/BarrierImpl.hpp
patch
|
blob
|
history
src/kernel/activity/MutexImpl.cpp
patch
|
blob
|
history
src/kernel/activity/MutexImpl.hpp
patch
|
blob
|
history
diff --git
a/src/kernel/activity/BarrierImpl.cpp
b/src/kernel/activity/BarrierImpl.cpp
index
af28aed
..
fda107f
100644
(file)
--- 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
}
}
// Already in the queue
}
}
+void BarrierAcquisitionImpl::post()
+{
+ finish();
+}
+
void BarrierAcquisitionImpl::finish()
{
xbt_assert(simcalls_.size() == 1, "Unexpected number of simcalls waiting: %zu", simcalls_.size());
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_)
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
// 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
dd59753
..
7455c9d
100644
(file)
--- 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;
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 */
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
27a7bf9
..
1c9235b
100644
(file)
--- 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
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
}
}
} 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());
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_)
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 {
// 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
a614a77
..
66851a6
100644
(file)
--- 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;
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 */
void finish() override;
void set_exception(actor::ActorImpl* issuer) override
{ /* nothing to do */