X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5c823cdf13c466016f35b437d330fa88626c7db0..793184f903550583a9d23a67374df45e9b67612d:/src/kernel/activity/MutexImpl.cpp diff --git a/src/kernel/activity/MutexImpl.cpp b/src/kernel/activity/MutexImpl.cpp index 2ad6bde174..43a511b9d3 100644 --- a/src/kernel/activity/MutexImpl.cpp +++ b/src/kernel/activity/MutexImpl.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. */ @@ -6,21 +6,11 @@ #include "src/kernel/activity/MutexImpl.hpp" #include "src/kernel/activity/Synchro.hpp" -#if SIMGRID_HAVE_MC -#include "simgrid/modelchecker.h" -#include "src/mc/mc_safety.hpp" -#define MC_CHECK_NO_DPOR() \ - xbt_assert(not MC_is_active() || mc::reduction_mode != mc::ReductionMode::dpor, \ - "Mutex is currently not supported with DPOR, use --cfg=model-check/reduction:none") -#else -#define MC_CHECK_NO_DPOR() (void)0 -#endif - XBT_LOG_NEW_DEFAULT_SUBCATEGORY(ker_mutex, ker_synchro, "Mutex kernel-space implementation"); -namespace simgrid { -namespace kernel { -namespace activity { +namespace simgrid::kernel::activity { + +/* -------- Acquisition -------- */ bool MutexAcquisitionImpl::test(actor::ActorImpl*) { @@ -40,16 +30,19 @@ void MutexAcquisitionImpl::wait_for(actor::ActorImpl* issuer, double timeout) // Already in the queue } } + void MutexAcquisitionImpl::finish() { xbt_assert(simcalls_.size() == 1, "Unexpected number of simcalls waiting: %zu", simcalls_.size()); - smx_simcall_t simcall = simcalls_.front(); + actor::Simcall* simcall = simcalls_.front(); simcalls_.pop_front(); simcall->issuer_->waiting_synchro_ = nullptr; simcall->issuer_->simcall_answer(); } +/* -------- Mutex -------- */ + unsigned MutexImpl::next_id_ = 0; MutexAcquisitionImplPtr MutexImpl::lock_async(actor::ActorImpl* issuer) @@ -73,7 +66,6 @@ MutexAcquisitionImplPtr MutexImpl::lock_async(actor::ActorImpl* issuer) bool MutexImpl::try_lock(actor::ActorImpl* issuer) { XBT_IN("(%p, %p)", this, issuer); - MC_CHECK_NO_DPOR(); if (owner_ != nullptr) { XBT_OUT(); return false; @@ -113,6 +105,4 @@ void MutexImpl::unlock(actor::ActorImpl* issuer) XBT_OUT(); } -} // namespace activity -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::activity