Changeset 22:d13fbc745959 in xplcommon for src/xplcommon/win32/ReadingBuffer.cc
- Timestamp:
- 01/02/13 06:43:16 (11 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/xplcommon/win32/ReadingBuffer.cc
r21 r22 48 48 } 49 49 50 if (isWaited()) { 51 DWORD size = 0; 52 if (getResult(size, stream.handle)) { 53 removeFromWaiter(); 54 overlapped->clear(); 55 addLength(size); 56 return true; 57 } else { 58 if (stream.failed()) { 59 overlapped->clear(); 60 removeFromWaiter(); 61 } 62 return false; 63 } 50 bool result = false; 51 if (checkWaitedResult(result)) { 52 return result; 64 53 } 65 54 66 ssize_t result= stream.read(getData(), getCapacity(), overlapped);67 if ( result<0) {55 ssize_t numRead = stream.read(getData(), getCapacity(), overlapped); 56 if (numRead<0) { 68 57 if (!stream.failed()) { 69 58 addTo(stream.getWaiter()); 70 } else {71 overlapped->reset();72 59 } 73 60 } else { 74 overlapped->reset(); 75 addLength(result); 61 addLength(numRead); 76 62 } 77 return result>=0; 63 return numRead>=0; 64 } 65 66 //------------------------------------------------------------------------------ 67 68 void ReadingBuffer::handleWaitedResult(DWORD size) 69 { 70 addLength(size); 78 71 } 79 72
Note:
See TracChangeset
for help on using the changeset viewer.