#include "src/mc/mc_forward.hpp"
#endif
#include "src/kernel/activity/ConditionVariableImpl.hpp"
+#include "src/mc/checker/SimcallInspector.hpp"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_popping);
"Simcall::COND_WAIT_TIMEOUT",
"Simcall::SEM_ACQUIRE",
"Simcall::SEM_ACQUIRE_TIMEOUT",
- "Simcall::MC_RANDOM",
"Simcall::RUN_KERNEL",
"Simcall::RUN_BLOCKING",
}};
* This function is generated from src/simix/simcalls.in
*/
void simgrid::kernel::actor::ActorImpl::simcall_handle(int value) {
- XBT_DEBUG("Handling simcall %p: %s", &simcall_, SIMIX_simcall_name(simcall_.call_));
+ XBT_DEBUG("Handling simcall %p %d: %s", &simcall_, value, SIMIX_simcall_name(simcall_.call_));
SIMCALL_SET_MC_VALUE(simcall_, value);
+ if (simcall_.inspector_ != nullptr)
+ simcall_.inspector_->is_pending(value);
if (context_->wannadie())
return;
switch (simcall_.call_) {
simcall_HANDLER_sem_acquire_timeout(&simcall_, simgrid::simix::unmarshal<smx_sem_t>(simcall_.args_[0]), simgrid::simix::unmarshal<double>(simcall_.args_[1]));
break;
- case Simcall::MC_RANDOM:
- simgrid::simix::marshal<int>(simcall_.result_, simcall_HANDLER_mc_random(&simcall_, simgrid::simix::unmarshal<int>(simcall_.args_[0]), simgrid::simix::unmarshal<int>(simcall_.args_[1])));
- simcall_answer();
- break;
-
case Simcall::RUN_KERNEL:
SIMIX_run_kernel(simgrid::simix::unmarshal<std::function<void()> const*>(simcall_.args_[0]));
simcall_answer();