Changeset 917 for XIOS/trunk/src/buffer_client.cpp
- Timestamp:
- 08/04/16 16:24:20 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/buffer_client.cpp
r732 r917 12 12 size_t CClientBuffer::maxRequestSize = 0; 13 13 14 CClientBuffer::CClientBuffer(MPI_Comm interComm_, int serverRank_, StdSize bfSize) 14 CClientBuffer::CClientBuffer(MPI_Comm interComm, int serverRank, StdSize bufferSize, StdSize maxBufferedEvents) 15 : interComm(interComm) 16 , serverRank(serverRank) 17 , bufferSize(bufferSize) 18 , current(0) 19 , count(0) 20 , bufferedEvents(0) 21 , maxBufferedEvents(maxBufferedEvents) 22 , pending(false) 15 23 { 16 interComm = interComm_;17 serverRank = serverRank_;18 bufferSize = bfSize;19 24 buffer[0] = new char[bufferSize]; // transform it with MPI_ALLOC_MEM later 20 25 buffer[1] = new char[bufferSize]; 21 current = 0;22 count = 0;23 pending = false;24 26 retBuffer = new CBufferOut(buffer[current], bufferSize); 25 info(10) << "CClientBuffer: allocated " << bufferSize << " bytes for server " << serverRank_<< endl;27 info(10) << "CClientBuffer: allocated 2 x " << bufferSize << " bytes for server " << serverRank << " with a maximum of " << maxBufferedEvents << " buffered events" << endl; 26 28 } 27 29 … … 46 48 << "The requested size (" << size << " bytes) is too big to fit the buffer (" << bufferSize << " bytes), please increase the client buffer size." << endl); 47 49 48 return (size <= remain() );50 return (size <= remain() && bufferedEvents < maxBufferedEvents); 49 51 } 50 52 … … 56 58 retBuffer->realloc(buffer[current] + count, size); 57 59 count += size; 60 bufferedEvents++; 58 61 return retBuffer; 59 62 } … … 88 91 else current = 1; 89 92 count = 0; 93 bufferedEvents = 0; 90 94 } 91 95 }
Note: See TracChangeset
for help on using the changeset viewer.