});
xbt_assert(issuer != C.end(),
"Invariant violation! A (supposedly) enabled `CommWait` transition "
- "waiting on communication %lu should not be enabled: the receive/send "
+ "waiting on communication %u should not be enabled: the receive/send "
"transition which generated the communication is not an action taken "
"to reach state(C) (the state of the configuration), which should "
"be an impossibility if `%s` is enabled. Please report this as "
});
xbt_assert(issuer != C.end(),
"An enabled `CommTest` transition (%s) is testing a communication"
- "%lu not created by a receive/send "
+ "%u not created by a receive/send "
"transition. SimGrid cannot currently handle test actions "
"under which a test is performed on a communication that was "
"not directly created by a receive/send operation of the same actor.",
} else if (const CommRecvTransition* e_issuer_recv =
dynamic_cast<const CommRecvTransition*>(e_issuer->get_transition());
e_issuer_recv != nullptr) {
-
for (const auto e : C) {
// If the provider of the communication for `CommTest` is a
// `CommRecv(m)`, then we only care about `e` if `λ(e) == `CommSend(m)`.
// Check for other locks on the same mutex
if (const MutexTransition* e_mutex = dynamic_cast<const MutexTransition*>(e->get_transition());
e_mutex != nullptr) {
-
if (e_mutex->type_ == Transition::Type::MUTEX_ASYNC_LOCK && mutex_lock->get_mutex() == e_mutex->get_mutex()) {
const EventSet K = EventSet({e, pre_event_a_C.value_or(e)});
exC.insert(U->discover_event(std::move(K), mutex_lock));
// Check for MutexTest
if (const MutexTransition* e_mutex = dynamic_cast<const MutexTransition*>(e->get_transition());
e_mutex != nullptr) {
-
if (e_mutex->type_ == Transition::Type::MUTEX_TEST || e_mutex->type_ == Transition::Type::MUTEX_WAIT) {
// TODO: Check if dependent or not
// This entails getting information about