From: Ehsan Azimi Date: Fri, 27 Nov 2020 20:11:08 +0000 (+0100) Subject: mc_api::get_src_actor() defined, X-Git-Tag: v3.26~72^2^2~28 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/f2c19ca0bb653af08dccfad323fcf058f22e48c1 mc_api::get_src_actor() defined, it used in update_comm_pattern() of comm. deter. checker --- diff --git a/src/mc/checker/CommunicationDeterminismChecker.cpp b/src/mc/checker/CommunicationDeterminismChecker.cpp index a5c8433ddc..47529bc4ea 100644 --- a/src/mc/checker/CommunicationDeterminismChecker.cpp +++ b/src/mc/checker/CommunicationDeterminismChecker.cpp @@ -102,8 +102,7 @@ static void update_comm_pattern(simgrid::mc::PatternCommunication* comm_pattern, mc_model_checker->get_remote_simulation().read(temp_comm, comm_addr); const simgrid::kernel::activity::CommImpl* comm = temp_comm.get_buffer(); - smx_actor_t src_proc = - mc_model_checker->get_remote_simulation().resolve_actor(simgrid::mc::remote(comm->src_actor_.get())); + auto src_proc = mcapi::get().get_src_actor(comm_addr); smx_actor_t dst_proc = mc_model_checker->get_remote_simulation().resolve_actor(simgrid::mc::remote(comm->dst_actor_.get())); comm_pattern->src_proc = src_proc->get_pid(); diff --git a/src/mc/mc_api.cpp b/src/mc/mc_api.cpp index bf62e03b11..017982caf1 100644 --- a/src/mc/mc_api.cpp +++ b/src/mc/mc_api.cpp @@ -280,6 +280,16 @@ bool mc_api::check_send_request_detached(smx_simcall_t const& simcall) const return mpi_request.detached(); } +smx_actor_t mc_api::get_src_actor(mc::RemotePtr const& comm_addr) const +{ + simgrid::mc::Remote temp_comm; + mc_model_checker->get_remote_simulation().read(temp_comm, comm_addr); + const simgrid::kernel::activity::CommImpl* comm = temp_comm.get_buffer(); + + auto src_proc = mc_model_checker->get_remote_simulation().resolve_actor(simgrid::mc::remote(comm->src_actor_.get())); + return src_proc; +} + std::size_t mc_api::get_remote_heap_bytes() const { RemoteSimulation& process = mc_model_checker->get_remote_simulation(); diff --git a/src/mc/mc_api.hpp b/src/mc/mc_api.hpp index 5082fec08d..66e3cde172 100644 --- a/src/mc/mc_api.hpp +++ b/src/mc/mc_api.hpp @@ -53,6 +53,7 @@ public: std::vector get_pattern_comm_data(void* addr) const; const char* get_actor_host_name(smx_actor_t actor) const; bool check_send_request_detached(smx_simcall_t const& simcall) const; + smx_actor_t get_src_actor(mc::RemotePtr const& comm_addr) const; // REMOTE APIs std::size_t get_remote_heap_bytes() const;