X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ea9cce21b6d3f37823143217f1ca183bb2f0c9ac..eb417d0c8064e83fc1211abc819ae93687505003:/src/mc/mc_state.cpp diff --git a/src/mc/mc_state.cpp b/src/mc/mc_state.cpp index a3f20eee13..f3b35cdf6e 100644 --- a/src/mc/mc_state.cpp +++ b/src/mc/mc_state.cpp @@ -14,6 +14,8 @@ #include "mc_comm_pattern.h" #include "mc_smx.h" +using simgrid::mc::remote; + extern "C" { XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_state, mc, @@ -49,7 +51,7 @@ mc_state_t MC_state_new() */ void MC_state_delete(mc_state_t state, int free_snapshot){ if (state->system_state && free_snapshot){ - MC_free_snapshot(state->system_state); + delete state->system_state; } if(_sg_mc_comms_determinism || _sg_mc_send_determinism){ xbt_free(state->index_comm); @@ -105,7 +107,7 @@ void MC_state_set_executed_request(mc_state_t state, smx_simcall_t req, case SIMCALL_COMM_WAITANY: state->internal_req.call = SIMCALL_COMM_WAIT; state->internal_req.issuer = req->issuer; - MC_process_read_dynar_element(&mc_model_checker->process, + MC_process_read_dynar_element(&mc_model_checker->process(), &state->internal_comm, simcall_comm_waitany__get__comms(req), value, sizeof(state->internal_comm)); simcall_comm_wait__set__comm(&state->internal_req, &state->internal_comm); @@ -117,7 +119,7 @@ void MC_state_set_executed_request(mc_state_t state, smx_simcall_t req, state->internal_req.issuer = req->issuer; if (value > 0) - MC_process_read_dynar_element(&mc_model_checker->process, + MC_process_read_dynar_element(&mc_model_checker->process(), &state->internal_comm, simcall_comm_testany__get__comms(req), value, sizeof(state->internal_comm)); @@ -127,16 +129,16 @@ void MC_state_set_executed_request(mc_state_t state, smx_simcall_t req, case SIMCALL_COMM_WAIT: state->internal_req = *req; - MC_process_read_simple(&mc_model_checker->process, &state->internal_comm , - simcall_comm_wait__get__comm(req), sizeof(state->internal_comm)); + mc_model_checker->process().read_bytes(&state->internal_comm , + sizeof(state->internal_comm), remote(simcall_comm_wait__get__comm(req))); simcall_comm_wait__set__comm(&state->executed_req, &state->internal_comm); simcall_comm_wait__set__comm(&state->internal_req, &state->internal_comm); break; case SIMCALL_COMM_TEST: state->internal_req = *req; - MC_process_read_simple(&mc_model_checker->process, &state->internal_comm, - simcall_comm_test__get__comm(req), sizeof(state->internal_comm)); + mc_model_checker->process().read_bytes(&state->internal_comm, + sizeof(state->internal_comm), remote(simcall_comm_test__get__comm(req))); simcall_comm_test__set__comm(&state->executed_req, &state->internal_comm); simcall_comm_test__set__comm(&state->internal_req, &state->internal_comm); break; @@ -190,7 +192,7 @@ static inline smx_simcall_t MC_state_get_request_for_process( case SIMCALL_COMM_WAITANY: *value = -1; while (procstate->interleave_count < - MC_process_read_dynar_length(&mc_model_checker->process, + MC_process_read_dynar_length(&mc_model_checker->process(), simcall_comm_waitany__get__comms(&process->simcall))) { if (MC_request_is_enabled_by_idx (&process->simcall, procstate->interleave_count++)) { @@ -200,7 +202,7 @@ static inline smx_simcall_t MC_state_get_request_for_process( } if (procstate->interleave_count >= - MC_process_read_dynar_length(&mc_model_checker->process, + MC_process_read_dynar_length(&mc_model_checker->process(), simcall_comm_waitany__get__comms(&process->simcall))) procstate->state = MC_DONE; @@ -213,7 +215,7 @@ static inline smx_simcall_t MC_state_get_request_for_process( unsigned start_count = procstate->interleave_count; *value = -1; while (procstate->interleave_count < - MC_process_read_dynar_length(&mc_model_checker->process, + MC_process_read_dynar_length(&mc_model_checker->process(), simcall_comm_testany__get__comms(&process->simcall))) { if (MC_request_is_enabled_by_idx (&process->simcall, procstate->interleave_count++)) { @@ -223,7 +225,7 @@ static inline smx_simcall_t MC_state_get_request_for_process( } if (procstate->interleave_count >= - MC_process_read_dynar_length(&mc_model_checker->process, + MC_process_read_dynar_length(&mc_model_checker->process(), simcall_comm_testany__get__comms(&process->simcall))) procstate->state = MC_DONE; @@ -236,8 +238,8 @@ static inline smx_simcall_t MC_state_get_request_for_process( case SIMCALL_COMM_WAIT: { smx_synchro_t remote_act = simcall_comm_wait__get__comm(&process->simcall); s_smx_synchro_t act; - MC_process_read_simple(&mc_model_checker->process, - &act, remote_act, sizeof(act)); + mc_model_checker->process().read_bytes( + &act, sizeof(act), remote(remote_act)); if (act.comm.src_proc && act.comm.dst_proc) { *value = 0; } else {