Changeset 1037 for XIOS/dev/branch_yushan/src/context_server.cpp
- Timestamp:
- 01/25/17 16:25:17 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan/src/context_server.cpp
r1033 r1037 57 57 } 58 58 59 bool CContextServer::eventLoop( bool enableEventsProcessing /*= true*/)59 bool CContextServer::eventLoop(void) 60 60 { 61 61 listen(); 62 62 checkPendingRequest(); 63 if (enableEventsProcessing) 64 processEvents(); 63 processEvents(); 65 64 return finished; 66 65 } … … 77 76 for(rank=0;rank<commSize;rank++) 78 77 { 78 //printf("in CContextServer::listen, rank = %d, commSize = %d, pendingRequest.find(rank) = %d\n", rank, commSize, pendingRequest.find(rank)); 79 79 if (pendingRequest.find(rank)==pendingRequest.end()) 80 80 { … … 85 85 { 86 86 it=buffers.find(rank); 87 87 88 if (it==buffers.end()) // Receive the buffer size and allocate the buffer 88 89 { … … 91 92 mapBufferSize_.insert(std::make_pair(rank, buffSize)); 92 93 it=(buffers.insert(pair<int,CServerBuffer*>(rank,new CServerBuffer(buffSize)))).first; 94 //printf("find message, is buffer end, receiving, buffSize = %d, rank = %d, commSize = %d\n", buffSize, rank, commSize); 93 95 } 94 96 else 95 97 { 98 96 99 MPI_Get_count(&status,MPI_CHAR,&count); 97 100 if (it->second->isBufferFree(count)) … … 100 103 MPI_Irecv(addr,count,MPI_CHAR,rank,20,interComm,&pendingRequest[rank]); 101 104 bufferRequest[rank]=addr; 105 //printf("find message, i-receiving to buffer %p, rank = %d, commSize = %d\n", addr, rank, commSize); 102 106 } 103 107 } … … 116 120 int count; 117 121 MPI_Status status; 122 123 //printf("enter checkPendingRequest\n"); 118 124 119 125 for(it=pendingRequest.begin();it!=pendingRequest.end();it++) … … 185 191 // The best way to properly solve this problem will be to use the event scheduler also in attached mode 186 192 // for now just set up a MPI barrier 187 if (!CServer::eventScheduler && CXios::isServer) MPI_Barrier(intraComm) ;193 if (!CServer::eventScheduler) MPI_Barrier(intraComm) ; 188 194 189 195 CTimer::get("Process events").resume();
Note: See TracChangeset
for help on using the changeset viewer.