#include "src/mc/mc_forward.hpp"
#endif
#include "src/kernel/activity/ConditionVariableImpl.hpp"
-#include "src/mc/checker/SimcallInspector.hpp"
+#include "src/mc/checker/SimcallObserver.hpp"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_popping);
"Simcall::COMM_WAIT",
"Simcall::COMM_TEST",
"Simcall::COMM_TESTANY",
- "Simcall::MUTEX_LOCK",
- "Simcall::MUTEX_TRYLOCK",
"Simcall::COND_WAIT",
"Simcall::COND_WAIT_TIMEOUT",
"Simcall::SEM_ACQUIRE",
void simgrid::kernel::actor::ActorImpl::simcall_handle(int times_considered_)
{
XBT_DEBUG("Handling simcall %p: %s", &simcall_, SIMIX_simcall_name(simcall_.call_));
- SIMCALL_SET_MC_VALUE(simcall_, times_considered_);
- if (simcall_.inspector_ != nullptr)
- simcall_.inspector_->prepare(times_considered_);
+ simcall_.mc_value_ = times_considered_;
+ if (simcall_.observer_ != nullptr)
+ simcall_.observer_->prepare(times_considered_);
if (context_->wannadie())
return;
switch (simcall_.call_) {
simcall_HANDLER_comm_testany(&simcall_, simgrid::simix::unmarshal<simgrid::kernel::activity::CommImpl**>(simcall_.args_[0]), simgrid::simix::unmarshal<size_t>(simcall_.args_[1]));
break;
- case Simcall::MUTEX_LOCK:
- simcall_HANDLER_mutex_lock(&simcall_, simgrid::simix::unmarshal<smx_mutex_t>(simcall_.args_[0]));
- break;
-
- case Simcall::MUTEX_TRYLOCK:
- simgrid::simix::marshal<int>(simcall_.result_, simcall_HANDLER_mutex_trylock(&simcall_, simgrid::simix::unmarshal<smx_mutex_t>(simcall_.args_[0])));
- simcall_answer();
- break;
-
case Simcall::COND_WAIT:
simcall_HANDLER_cond_wait(&simcall_, simgrid::simix::unmarshal<smx_cond_t>(simcall_.args_[0]), simgrid::simix::unmarshal<smx_mutex_t>(simcall_.args_[1]));
break;