Changeset 2588


Ignore:
Timestamp:
10/05/23 18:06:06 (7 months ago)
Author:
ymipsl
Message:

fix potential dead-lock ; not sure it is enough...
YM

Location:
XIOS3/trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/trunk/src/manager/server_context.cpp

    r2580 r2588  
    7272    bool ok ; 
    7373    int type ; 
    74     MPI_Comm newInterCommClient, newInterCommServer ; 
    75     MPI_Comm_dup(contextComm_,&newInterCommClient) ; 
    76     MPI_Comm_dup(contextComm_,&newInterCommServer) ; 
    77     overlapedComm_[name_]=tuple<bool, MPI_Comm, MPI_Comm>(false, newInterCommClient, newInterCommServer) ; 
    78     MPI_Barrier(contextComm_) ; 
     74     
    7975 
    8076    if (intraCommRank==0) 
     
    107103    if (ok)   
    108104    { 
     105      MPI_Comm newInterCommClient, newInterCommServer ; 
     106      MPI_Comm_dup(contextComm_,&newInterCommClient) ; 
     107      MPI_Comm_dup(contextComm_,&newInterCommServer) ; 
     108      overlapedComm_[name_]=tuple<bool, MPI_Comm, MPI_Comm>(false, newInterCommClient, newInterCommServer) ; 
     109      MPI_Barrier(contextComm_) ; 
     110 
    109111      int globalRank ; 
    110112      MPI_Comm_rank(xiosComm_,&globalRank) ; 
  • XIOS3/trunk/src/node/context.cpp

    r2580 r2588  
    587587    for(int i=0 ; i<nbPartitions; i++) 
    588588    { 
    589       while (!parentServerContext_->createIntercomm(poolId, serverId, i, getContextId(), intraComm_, interCommClient, interCommServer)) yield() ; 
     589      while (!parentServerContext_->createIntercomm(poolId, serverId, i, getContextId(), intraComm_, interCommClient, interCommServer, false)) yield() ; 
    590590      int type ;  
    591591      if (commRank==0) while (!CXios::getServicesManager()->getServiceType(poolId, serverId, 0, type)) yield(); 
Note: See TracChangeset for help on using the changeset viewer.