Changeset 509 for XIOS/trunk/src/context_server.cpp
- Timestamp:
- 11/13/14 15:09:14 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/context_server.cpp
r501 r509 37 37 scheduled=false ; 38 38 finished=false ; 39 39 40 40 boost::hash<string> hashString ; 41 41 hashId=hashString(context->getId()) ; … … 80 80 it=buffers.find(rank) ; 81 81 if (it==buffers.end()) 82 it=(buffers.insert(pair<int,CServerBuffer*>(rank,new CServerBuffer))).first ;83 MPI_Get_count(&status,MPI_CHAR,&count) ;84 if (it->second->isBufferFree(count))85 82 { 86 addr=(char*)it->second->getBuffer(count) ; 87 MPI_Irecv(addr,count,MPI_CHAR,rank,20,interComm,&pendingRequest[rank]) ; 88 bufferRequest[rank]=addr ; 83 StdSize buffSize = 0; 84 MPI_Recv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &status); 85 it=(buffers.insert(pair<int,CServerBuffer*>(rank,new CServerBuffer(buffSize)))).first ; 86 } 87 else 88 { 89 MPI_Get_count(&status,MPI_CHAR,&count) ; 90 if (it->second->isBufferFree(count)) 91 { 92 addr=(char*)it->second->getBuffer(count) ; 93 MPI_Irecv(addr,count,MPI_CHAR,rank,20,interComm,&pendingRequest[rank]) ; 94 bufferRequest[rank]=addr ; 95 } 89 96 } 90 97 } … … 158 165 { 159 166 event=it->second ; 160 167 161 168 if (event->isFull()) 162 169 { 163 170 if (!scheduled && !CXios::isServer) 164 171 { 165 CServer::eventScheduler->registerEvent(currentTimeLine,hashId) ; 172 CServer::eventScheduler->registerEvent(currentTimeLine,hashId) ; 166 173 scheduled=true ; 167 174 } 168 else if (CXios::isServer || CServer::eventScheduler->queryEvent(currentTimeLine,hashId) ) 175 else if (CXios::isServer || CServer::eventScheduler->queryEvent(currentTimeLine,hashId) ) 169 176 { 170 177 CTimer::get("Process events").resume() ;
Note: See TracChangeset
for help on using the changeset viewer.