X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4d140762b2b9c8746cdd3b0680a7167867ba0ad9..87e5cfdacaaaafd46c8b8d62fbc8089409468fbc:/src/smpi/include/smpi_process.hpp diff --git a/src/smpi/include/smpi_process.hpp b/src/smpi/include/smpi_process.hpp index f532ec7522..c6c07a74a3 100644 --- a/src/smpi/include/smpi_process.hpp +++ b/src/smpi/include/smpi_process.hpp @@ -7,8 +7,9 @@ #ifndef SMPI_PROCESS_HPP #define SMPI_PROCESS_HPP -#include "src/instr/instr_smpi.h" +#include "private.hpp" #include "simgrid/s4u/Mailbox.hpp" +#include "src/instr/instr_smpi.hpp" #include "xbt/synchro.h" namespace simgrid{ @@ -27,23 +28,23 @@ class Process { MPI_Comm comm_intra_ = MPI_COMM_NULL; MPI_Comm* comm_world_ = nullptr; void* data_ = nullptr; /* user data */ - int index_ = MPI_UNDEFINED; char state_; int sampling_ = 0; /* inside an SMPI_SAMPLE_ block? */ - char* instance_id_ = nullptr; + std::string instance_id_; bool replaying_ = false; /* is the process replaying a trace */ msg_bar_t finalization_barrier_; - int return_value_ = 0; smpi_trace_call_location_t trace_call_loc_; - smx_actor_t process_ = nullptr; + simgrid::s4u::ActorPtr process_ = nullptr; + smpi_privatization_region_t privatized_region_; #if HAVE_PAPI /** Contains hardware data as read by PAPI **/ int papi_event_set_; papi_counter_t papi_counter_data_; #endif public: - explicit Process(int index, msg_bar_t barrier); - void set_data(int index, int* argc, char*** argv); + explicit Process(simgrid::s4u::ActorPtr actor, msg_bar_t barrier); + ~Process(); + void set_data(int* argc, char*** argv); void finalize(); int finalized(); int initialized(); @@ -53,8 +54,8 @@ class Process { void set_user_data(void *data); void *get_user_data(); smpi_trace_call_location_t* call_location(); - int index(); - MPI_Comm comm_world(); + void set_privatized_region(smpi_privatization_region_t region); + smpi_privatization_region_t privatized_region(); smx_mailbox_t mailbox(); smx_mailbox_t mailbox_small(); xbt_mutex_t mailboxes_mutex(); @@ -65,16 +66,15 @@ class Process { xbt_os_timer_t timer(); void simulated_start(); double simulated_elapsed(); + MPI_Comm comm_world(); MPI_Comm comm_self(); MPI_Comm comm_intra(); void set_comm_intra(MPI_Comm comm); void set_sampling(int s); int sampling(); msg_bar_t finalization_barrier(); - int return_value(); - void set_return_value(int val); static void init(int *argc, char ***argv); - smx_actor_t process(); + simgrid::s4u::ActorPtr process(); };