diff options
Diffstat (limited to 'cpp/src/Ice/Connection.cpp')
-rw-r--r-- | cpp/src/Ice/Connection.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/cpp/src/Ice/Connection.cpp b/cpp/src/Ice/Connection.cpp index ca3446f5e29..5387f1bf8c3 100644 --- a/cpp/src/Ice/Connection.cpp +++ b/cpp/src/Ice/Connection.cpp @@ -563,6 +563,11 @@ IceInternal::Connection::sendResponse(BasicStream* os, bool compress) try { + if(--_dispatchCount == 0) + { + notifyAll(); + } + if(_state == StateClosed) { return; @@ -619,11 +624,6 @@ IceInternal::Connection::sendResponse(BasicStream* os, bool compress) _transceiver->write(*os, _endpoint->timeout()); } - if(--_dispatchCount == 0) - { - notifyAll(); - } - if(_state == StateClosing && _dispatchCount == 0) { initiateShutdown(); @@ -642,16 +642,11 @@ IceInternal::Connection::sendNoResponse() try { - if(_state == StateClosed) - { - return; - } - if(--_dispatchCount == 0) { notifyAll(); } - + if(_state == StateClosing && _dispatchCount == 0) { initiateShutdown(); @@ -1237,7 +1232,6 @@ IceInternal::Connection::setState(State state) registerWithPool(); } unregisterWithPool(); - _dispatchCount = 0; break; } } |