return SimcallObserver::dot_label() + "Mutex UNLOCK";
}
-std::string MutexTrylockSimcall::to_string(int time_considered) const
-{
- std::string res = SimcallObserver::to_string(time_considered) + "Mutex TRYLOCK";
- res += "(locked = " + std::to_string(mutex_->is_locked());
- res += ", owner = " + std::to_string(mutex_->get_owner() ? mutex_->get_owner()->get_pid() : -1);
- res += ", sleeping = n/a)";
- return res;
-}
-
-std::string MutexTrylockSimcall::dot_label() const
-{
- return SimcallObserver::dot_label() + "Mutex TRYLOCK";
-}
-
std::string MutexLockSimcall::to_string(int time_considered) const
{
- std::string res = SimcallObserver::to_string(time_considered) + "Mutex LOCK";
+ std::string res = SimcallObserver::to_string(time_considered) + (blocking_ ? "Mutex LOCK" : "Mutex TRYLOCK");
res += "(locked = " + std::to_string(mutex_->is_locked());
res += ", owner = " + std::to_string(mutex_->get_owner() ? mutex_->get_owner()->get_pid() : -1);
res += ", sleeping = n/a)";
std::string MutexLockSimcall::dot_label() const
{
- return SimcallObserver::dot_label() + "Mutex LOCK";
+ return SimcallObserver::dot_label() + (blocking_ ? "Mutex LOCK" : "Mutex TRYLOCK");
}
bool MutexLockSimcall::is_enabled() const
{
- return mutex_->get_owner() == nullptr || mutex_->get_owner() == get_issuer();
+ return not blocking_ || mutex_->get_owner() == nullptr || mutex_->get_owner() == get_issuer();
}
} // namespace mc
} // namespace simgrid