summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Connection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Connection.cpp')
-rw-r--r--cpp/src/Ice/Connection.cpp18
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;
}
}