diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-08-10 11:30:38 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-08-10 11:30:38 +0200 |
commit | f3887e67cd7fbdb4a2015e7e743a18253f597de0 (patch) | |
tree | 09c7660d864fb01973864a441d5674f0a497bd25 /cpp/src/Ice/ConnectionI.cpp | |
parent | Config bug fix (diff) | |
download | ice-f3887e67cd7fbdb4a2015e7e743a18253f597de0.tar.bz2 ice-f3887e67cd7fbdb4a2015e7e743a18253f597de0.tar.xz ice-f3887e67cd7fbdb4a2015e7e743a18253f597de0.zip |
Windows fixes
Diffstat (limited to 'cpp/src/Ice/ConnectionI.cpp')
-rw-r--r-- | cpp/src/Ice/ConnectionI.cpp | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp index b823e77de2f..afc70dcf85f 100644 --- a/cpp/src/Ice/ConnectionI.cpp +++ b/cpp/src/Ice/ConnectionI.cpp @@ -1335,21 +1335,24 @@ Ice::ConnectionI::message(ThreadPoolCurrent& current) unscheduleTimeout(current.operation); if(current.operation & SocketOperationWrite && !_writeStream.b.empty()) { - if(_observer.get() && _writeStream.i != _writeStream.b.end()) + if(_writeStream.i != _writeStream.b.end()) { - _observer->startWrite(); - } - - if(_writeStream.i != _writeStream.b.end() && !_transceiver->write(_writeStream)) - { - assert(!_writeStream.b.empty()); - scheduleTimeout(SocketOperationWrite, _endpoint->timeout()); - return; - } - - if(_observer.get()) - { - _observer->finishWrite(); + if(_observer.get()) + { + _observer->startWrite(); + } + + if(!_transceiver->write(_writeStream)) + { + assert(!_writeStream.b.empty()); + scheduleTimeout(SocketOperationWrite, _endpoint->timeout()); + return; + } + + if(_observer.get()) + { + _observer->finishWrite(); + } } assert(_writeStream.i == _writeStream.b.end()); } |