Changeset 1228
- Timestamp:
- 07/27/17 19:09:24 (7 years ago)
- Location:
- XIOS/dev/XIOS_DEV_CMIP6/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/XIOS_DEV_CMIP6/src/context_server.cpp
r1225 r1228 86 86 { 87 87 rank=status.MPI_SOURCE ; 88 89 if (pendingRequest.find(rank)==pendingRequest.end()) listenPendingRequest(status) ; 90 else 88 bool okLoop; 89 if (pendingRequest.find(rank)==pendingRequest.end()) 90 okLoop = !listenPendingRequest(status) ; 91 if (okLoop) 91 92 { 92 93 for(rank=0;rank<commSize;rank++) … … 105 106 } 106 107 107 voidCContextServer::listenPendingRequest(MPI_Status& status)108 bool CContextServer::listenPendingRequest(MPI_Status& status) 108 109 { 109 110 int count; … … 119 120 mapBufferSize_.insert(std::make_pair(rank, buffSize)); 120 121 it=(buffers.insert(pair<int,CServerBuffer*>(rank,new CServerBuffer(buffSize)))).first; 122 return true; 121 123 } 122 124 else … … 128 130 MPI_Irecv(addr,count,MPI_CHAR,rank,20,interComm,&pendingRequest[rank]); 129 131 bufferRequest[rank]=addr; 132 return true; 130 133 } 134 else 135 return false; 131 136 } 132 137 } -
XIOS/dev/XIOS_DEV_CMIP6/src/context_server.hpp
r1225 r1228 17 17 bool eventLoop(bool enableEventsProcessing = true); 18 18 void listen(void) ; 19 voidlistenPendingRequest(MPI_Status& status) ;19 bool listenPendingRequest(MPI_Status& status) ; 20 20 void checkPendingRequest(void) ; 21 21 void processRequest(int rank, char* buff,int count) ;
Note: See TracChangeset
for help on using the changeset viewer.