X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/63c22347e854ce1cd31b509002df101876034c3e..4de9f9b5f051c90c1b0679ae50e1ac0b974fc54b:/src/smpi/smpi_process.cpp?ds=sidebyside diff --git a/src/smpi/smpi_process.cpp b/src/smpi/smpi_process.cpp index 142db9e56c..92cd1d3edd 100644 --- a/src/smpi/smpi_process.cpp +++ b/src/smpi/smpi_process.cpp @@ -32,7 +32,8 @@ static char *get_mailbox_name_small(char *str, int index) namespace simgrid{ namespace smpi{ -Process::Process(int index) +Process::Process(int index, msg_bar_t finalization_barrier) + : finalization_barrier_(finalization_barrier) { char name[MAILBOX_NAME_MAXLEN]; mailbox_ = simgrid::s4u::Mailbox::byName(get_mailbox_name(name, index)); @@ -61,16 +62,15 @@ Process::Process(int index) #endif } -void Process::set_data(int index, int *argc, char ***argv) +void Process::set_data(int index, int* argc, char*** argv) { - char* instance_id = (*argv)[1]; comm_world_ = smpi_deployment_comm_world(instance_id); msg_bar_t bar = smpi_deployment_finalization_barrier(instance_id); if (bar!=nullptr) // don't overwrite the default one finalization_barrier_ = bar; - index_ = index; instance_id_ = instance_id; + index_ = index; static_cast(SIMIX_process_self()->data)->data = this; @@ -85,21 +85,15 @@ void Process::set_data(int index, int *argc, char ***argv) // set the process attached to the mailbox mailbox_small_->setReceiver(simgrid::s4u::Actor::self()); process_ = SIMIX_process_self(); - XBT_DEBUG("<%d> New process in the game: %p", index, SIMIX_process_self()); + XBT_DEBUG("<%d> New process in the game: %p", index_, SIMIX_process_self()); } -void Process::destroy() +/** @brief Prepares the current process for termination. */ +void Process::finalize() { - if(smpi_privatize_global_variables){ - smpi_switch_data_segment(index_); - } state_ = SMPI_FINALIZED; XBT_DEBUG("<%d> Process left the game", index_); -} -/** @brief Prepares the current process for termination. */ -void Process::finalize() -{ // This leads to an explosion of the search graph which cannot be reduced: if(MC_is_active() || MC_record_replay_is_active()) return; @@ -145,16 +139,6 @@ bool Process::replaying(){ return false; } -void Process::set_user_data(void *data) -{ - data_ = data; -} - -void *Process::get_user_data() -{ - return data_; -} - smx_actor_t Process::process(){ return process_; } @@ -253,10 +237,6 @@ int Process::sampling() return sampling_; } -void Process::set_finalization_barrier(msg_bar_t bar){ - finalization_barrier_=bar; -} - msg_bar_t Process::finalization_barrier(){ return finalization_barrier_; } @@ -289,7 +269,7 @@ void Process::init(int *argc, char ***argv){ int rank = xbt_str_parse_int((*argv)[2], "Invalid rank: %s"); smpi_deployment_register_process(instance_id, rank, index); - if(smpi_privatize_global_variables){ + if(smpi_privatize_global_variables == SMPI_PRIVATIZE_MMAP){ /* Now using segment index of the process */ index = proc->segment_index; /* Done at the process's creation */