+int MC_random(int min, int max)
+{
+ xbt_assert(get_model_checking_mode() != ModelCheckingMode::CHECKER_SIDE,
+ "This should be called from the client side");
+
+ if (not MC_is_active() && not MC_record_replay_is_active()) { // no need to do a simcall in this case
+ static simgrid::xbt::random::XbtRandom prng;
+ return prng.uniform_int(min, max);
+ }
+ simgrid::kernel::actor::RandomSimcall observer{simgrid::kernel::actor::ActorImpl::self(), min, max};
+ return simgrid::kernel::actor::simcall_answered([&observer] { return observer.get_value(); }, &observer);
+}