mutex = &temp_mutex;
}
#endif
+
if(mutex->owner == nullptr)
return true;
- else
#if HAVE_MC
+ else if (mc_mode == MC_MODE_SERVER)
// TODO, *(mutex->owner) :/
return MC_smx_resolve_process(simgrid::mc::remote(mutex->owner))->pid ==
MC_smx_resolve_process(simgrid::mc::remote(req->issuer))->pid;
-#else
- return mutex->owner->pid == req->issuer->pid;
#endif
+ else
+ return mutex->owner->pid == req->issuer->pid;
}
default:
std::string simgrid::mc::request_to_string(smx_simcall_t req, int value, simgrid::mc::RequestType request_type)
{
+ xbt_assert(mc_mode == MC_MODE_SERVER);
+
bool use_remote_comm = true;
switch(request_type) {
case simgrid::mc::RequestType::simix:
*/
smx_process_t MC_smx_simcall_get_issuer(s_smx_simcall_t const* req)
{
- if (mc_mode == MC_MODE_CLIENT)
- return req->issuer;
+ xbt_assert(mc_mode == MC_MODE_SERVER);
// This is the address of the smx_process in the MCed process:
auto address = simgrid::mc::remote(req->issuer);
smx_process_t MC_smx_resolve_process(
simgrid::mc::RemotePtr<s_smx_process_t> process_remote_address)
{
+ xbt_assert(mc_mode == MC_MODE_SERVER);
+
if (!process_remote_address)
return nullptr;
- if (mc_mode == MC_MODE_CLIENT)
- return process_remote_address.local();
simgrid::mc::SimixProcessInformation* process_info =
MC_smx_resolve_process_info(process_remote_address);
simgrid::mc::SimixProcessInformation* MC_smx_resolve_process_info(
simgrid::mc::RemotePtr<s_smx_process_t> process_remote_address)
{
- if (mc_mode == MC_MODE_CLIENT)
- xbt_die("No process_info for local process is not enabled.");
+ xbt_assert(mc_mode == MC_MODE_SERVER);
+
for (auto& process_info : mc_model_checker->process().smx_process_infos)
if (process_info.address == process_remote_address)
return &process_info;