if (aid_ == other->aid_)
return false;
+ if (dynamic_cast<const RandomTransition*>(other) != nullptr)
+ return false; // Random is indep with any transition
+
if (auto* send = dynamic_cast<const CommSendTransition*>(other))
return send->depends(this);
if (aid_ == other->aid_)
return false;
+ if (dynamic_cast<const RandomTransition*>(other) != nullptr)
+ return false; // Random is indep with any transition
+
if (const auto* other_irecv = dynamic_cast<const CommRecvTransition*>(other))
return mbox_ == other_irecv->mbox_;
if (aid_ == other->aid_)
return false;
+ if (dynamic_cast<const RandomTransition*>(other) != nullptr)
+ return false; // Random is indep with any transition
+
if (const auto* other_isend = dynamic_cast<const CommSendTransition*>(other))
return mbox_ == other_isend->mbox_;
return new CommRecvTransition(issuer, times_considered, buffer);
case kernel::actor::SimcallObserver::Simcall::ISEND:
return new CommSendTransition(issuer, times_considered, buffer);
+
+ case kernel::actor::SimcallObserver::Simcall::RANDOM:
+ return new RandomTransition(issuer, times_considered, buffer);
+
case kernel::actor::SimcallObserver::Simcall::UNKNOWN:
return new Transition(issuer, times_considered);
default: