X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/13fb4af932a02ea0bd4293d1e55ac071de326f80..6dfbeafc01f45baadb4214d15cd0c703887d743e:/src/smpi/smpi_global.cpp?ds=sidebyside diff --git a/src/smpi/smpi_global.cpp b/src/smpi/smpi_global.cpp index ad0834c9ba..015834fee8 100644 --- a/src/smpi/smpi_global.cpp +++ b/src/smpi/smpi_global.cpp @@ -79,7 +79,7 @@ simgrid::smpi::Process* smpi_process() smx_actor_t me = SIMIX_process_self(); if (me == nullptr) // This happens sometimes (eg, when linking against NS3 because it pulls openMPI...) return nullptr; - simgrid::MsgActorExt* msgExt = static_cast(me->data); + simgrid::msg::ActorExt* msgExt = static_cast(me->data); return static_cast(msgExt->data); } @@ -144,7 +144,8 @@ static void check_blocks(std::vector> &private_blocks, void smpi_comm_copy_buffer_callback(smx_activity_t synchro, void *buff, size_t buff_size) { - simgrid::kernel::activity::CommImpl* comm = dynamic_cast(synchro); + simgrid::kernel::activity::CommImplPtr comm = + boost::dynamic_pointer_cast(synchro); int src_shared = 0; int dst_shared = 0; size_t src_offset = 0; @@ -179,7 +180,7 @@ void smpi_comm_copy_buffer_callback(smx_activity_t synchro, void *buff, size_t b XBT_DEBUG("Privatization : We are copying from a zone inside global memory... Saving data to temp buffer !"); smpi_switch_data_segment( - static_cast((static_cast(comm->src_proc->data)->data)) + static_cast((static_cast(comm->src_proc->data)->data)) ->index()); tmpbuff = static_cast(xbt_malloc(buff_size)); memcpy_private(tmpbuff, buff, private_blocks); @@ -189,7 +190,7 @@ void smpi_comm_copy_buffer_callback(smx_activity_t synchro, void *buff, size_t b && ((char*)comm->dst_buff < smpi_start_data_exe + smpi_size_data_exe )){ XBT_DEBUG("Privatization : We are copying to a zone inside global memory - Switch data segment"); smpi_switch_data_segment( - static_cast((static_cast(comm->dst_proc->data)->data)) + static_cast((static_cast(comm->dst_proc->data)->data)) ->index()); } XBT_DEBUG("Copying %zu bytes from %p to %p", buff_size, tmpbuff,comm->dst_buff); @@ -549,8 +550,6 @@ int smpi_main(const char* executable, int argc, char *argv[]) SIMIX_create_environment(argv[1]); SIMIX_comm_set_copy_data_callback(smpi_comm_copy_buffer_callback); - static std::size_t rank = 0; - smpi_init_options(); if (smpi_privatize_global_variables == SMPI_PRIVATIZE_DLOPEN) { @@ -561,6 +560,7 @@ int smpi_main(const char* executable, int argc, char *argv[]) struct stat fdin_stat; stat(executable_copy.c_str(), &fdin_stat); off_t fdin_size = fdin_stat.st_size; + static std::size_t rank = 0; simix_global->default_function = [executable_copy, fdin_size](std::vector args) { return std::function([executable_copy, fdin_size, args] {