]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
petits bugs
authorsecher <secher>
Fri, 8 Jul 2011 14:39:21 +0000 (14:39 +0000)
committersecher <secher>
Fri, 8 Jul 2011 14:39:21 +0000 (14:39 +0000)
src/ParaMEDMEM/OverlapElementLocator.hxx
src/ParaMEDMEMTest/MPI2Connector.cxx

index 3986576472723eb4ed5273147382032484fa9999..a3358b8afc33ba7d8e0dbd06840638bcac1cd867 100644 (file)
@@ -29,6 +29,7 @@
 #include <mpi.h>
 #include <vector>
 #include <set>
+#include <map>
 
 namespace ParaMEDMEM
 {
index 386587c20f8360385500463c3f120b94d702c9e1..226e30690ef1c0588cf625635c356658a6b63242 100644 (file)
@@ -20,6 +20,7 @@
 #include "MPI2Connector.hxx"
 
 #include <iostream>
+#include <string.h>
 
 MPI2Connector::MPI2Connector()
 {
@@ -55,7 +56,12 @@ MPI_Comm MPI2Connector::remoteMPI2Connect(const std::string& service)
     { 
       /* rank 0 try to be a server. If service is already published, try to be a cient */
       MPI_Open_port(MPI_INFO_NULL, port_name); 
-      if ( MPI_Publish_name((char*)service.c_str(), MPI_INFO_NULL, port_name) == MPI_SUCCESS )
+      if ( MPI_Lookup_name((char*)service.c_str(), MPI_INFO_NULL, port_name_clt) == MPI_SUCCESS )
+        {
+          std::cerr << "[" << _num_proc << "] I get the connection with " << service << " at " << port_name_clt << std::endl;
+          MPI_Close_port( port_name );
+        }
+      else if ( MPI_Publish_name((char*)service.c_str(), MPI_INFO_NULL, port_name) == MPI_SUCCESS )
         {
           _srv = true;
           _port_name = port_name;