X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0921a44d5521b3337b8752aa2a9f06ee1405fb24..a7bcf0f57ffe5ef60e309c4472e6715898da7d8d:/src/smpi/smpi_global.cpp diff --git a/src/smpi/smpi_global.cpp b/src/smpi/smpi_global.cpp index a36fe01a20..3933638e8f 100644 --- a/src/smpi/smpi_global.cpp +++ b/src/smpi/smpi_global.cpp @@ -133,8 +133,7 @@ void smpi_process_init(int *argc, char ***argv) data->instance_id = instance_id; data->replaying = false; - simdata_process_t simdata = static_cast(simcall_process_get_data(proc)); - simdata->data = data; + static_cast(proc->data)->data = data; if (*argc > 3) { memmove(&(*argv)[0], &(*argv)[2], sizeof(char *) * (*argc - 2)); @@ -145,7 +144,7 @@ void smpi_process_init(int *argc, char ***argv) data->argc = argc; data->argv = argv; // set the process attached to the mailbox - simcall_mbox_set_receiver(data->mailbox_small->getImpl(), proc); + data->mailbox_small->setReceiver(simgrid::s4u::Actor::self()); XBT_DEBUG("<%d> New process in the game: %p", index, proc); } xbt_assert(smpi_process_data(), @@ -227,8 +226,8 @@ int smpi_global_size() smpi_process_data_t smpi_process_data() { - simdata_process_t simdata = static_cast(SIMIX_process_self_get_data()); - return static_cast(simdata->data); + MsgActorExt* msgExt = static_cast(SIMIX_process_self()->data); + return static_cast(msgExt->data); } smpi_process_data_t smpi_process_remote_data(int index) @@ -400,8 +399,8 @@ 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(SIMIX_process_get_data(comm->src_proc))->data))->index)); + smpi_switch_data_segment( + (static_cast((static_cast(comm->src_proc->data)->data))->index)); tmpbuff = static_cast(xbt_malloc(buff_size)); memcpy(tmpbuff, buff, buff_size); } @@ -409,7 +408,8 @@ void smpi_comm_copy_buffer_callback(smx_activity_t synchro, void *buff, size_t b if((smpi_privatize_global_variables) && ((char*)comm->dst_buff >= smpi_start_data_exe) && ((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(SIMIX_process_get_data(comm->dst_proc))->data))->index)); + smpi_switch_data_segment( + (static_cast((static_cast(comm->dst_proc->data)->data))->index)); } memcpy(comm->dst_buff, tmpbuff, buff_size); @@ -770,6 +770,7 @@ static void smpi_init_options(){ smpi_privatize_global_variables = xbt_cfg_get_boolean("smpi/privatize-global-variables"); if (smpi_cpu_threshold < 0) smpi_cpu_threshold = DBL_MAX; + smpi_cfg_shared_malloc = xbt_cfg_get_boolean("smpi/shared-malloc"); } int smpi_main(int (*realmain) (int argc, char *argv[]), int argc, char *argv[]) @@ -790,7 +791,7 @@ int smpi_main(int (*realmain) (int argc, char *argv[]), int argc, char *argv[]) SIMIX_global_init(&argc, argv); MSG_init(&argc,argv); - SMPI_switch_data_segment = smpi_switch_data_segment; + SMPI_switch_data_segment = &smpi_switch_data_segment; smpi_init_options();