Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[SMPI] smpi_process: Move instance_id_ from char* to std::string
authorChristian Heinrich <franz-christian.heinrich@inria.fr>
Wed, 17 Jan 2018 22:25:06 +0000 (23:25 +0100)
committerChristian Heinrich <franz-christian.heinrich@inria.fr>
Wed, 24 Jan 2018 14:58:21 +0000 (15:58 +0100)
src/smpi/include/smpi_process.hpp
src/smpi/internals/smpi_process.cpp

index d9ef794..1f4c607 100644 (file)
@@ -30,7 +30,7 @@ class Process {
     void* data_           = nullptr; /* user data */
     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;
index 4478a93..a690737 100644 (file)
@@ -68,12 +68,11 @@ Process::Process(ActorPtr actor, msg_bar_t finalization_barrier)
 
 void Process::set_data(int* argc, char*** argv)
 {
-    char* instance_id = (*argv)[1];
-    comm_world_       = smpi_deployment_comm_world(instance_id);
-    msg_bar_t barrier = smpi_deployment_finalization_barrier(instance_id);
+    instance_id_      = std::string((*argv)[1]);
+    comm_world_       = smpi_deployment_comm_world(instance_id_.c_str());
+    msg_bar_t barrier = smpi_deployment_finalization_barrier(instance_id_.c_str());
     if (barrier != nullptr) // don't overwrite the current one if the instance has none
       finalization_barrier_ = barrier;
-    instance_id_ = instance_id;
 
     process_                                                       = simgrid::s4u::Actor::self();
     static_cast<simgrid::msg::ActorExt*>(process_->getImpl()->userdata)->data = this;