diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/OutgoingAsync.cpp | 15 | ||||
-rw-r--r-- | cpp/src/Ice/Proxy.cpp | 4 |
2 files changed, 9 insertions, 10 deletions
diff --git a/cpp/src/Ice/OutgoingAsync.cpp b/cpp/src/Ice/OutgoingAsync.cpp index 0c312b4c6f3..7ccf0536106 100644 --- a/cpp/src/Ice/OutgoingAsync.cpp +++ b/cpp/src/Ice/OutgoingAsync.cpp @@ -332,7 +332,7 @@ OutgoingAsyncBase::exceptionImpl(const Exception& ex) } bool -OutgoingAsyncBase::responseImpl(bool ok) +OutgoingAsyncBase::responseImpl(bool ok, bool invoke) { Lock sync(_m); if(ok) @@ -347,10 +347,9 @@ OutgoingAsyncBase::responseImpl(bool ok) _m.notifyAll(); #endif - bool invoke; try { - invoke = handleResponse(ok); + invoke &= handleResponse(ok); } catch(const Ice::Exception& ex) { @@ -830,13 +829,13 @@ ProxyOutgoingAsyncBase::exceptionImpl(const Exception& ex) } bool -ProxyOutgoingAsyncBase::responseImpl(bool ok) +ProxyOutgoingAsyncBase::responseImpl(bool ok, bool invoke) { if(_proxy->_getReference()->getInvocationTimeout() != -1) { _instance->timer()->cancel(ICE_SHARED_FROM_THIS); } - return OutgoingAsyncBase::responseImpl(ok); + return OutgoingAsyncBase::responseImpl(ok, invoke); } void @@ -1084,7 +1083,7 @@ OutgoingAsync::response() } } - return responseImpl(replyStatus == replyOK); + return responseImpl(replyStatus == replyOK, true); } catch(const Exception& ex) { @@ -1130,8 +1129,8 @@ OutgoingAsync::invoke(const string& operation) { _sentSynchronously = true; _proxy->_getBatchRequestQueue()->finishBatchRequest(&_os, _proxy, operation); - responseImpl(true); - return; // Don't call sent/completed callback for batch AMI requests + responseImpl(true, false); // Don't call sent/completed callback for batch AMI requests + return; } // diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp index ea668c25017..d24fcc1c4b2 100644 --- a/cpp/src/Ice/Proxy.cpp +++ b/cpp/src/Ice/Proxy.cpp @@ -124,7 +124,7 @@ AsyncStatus ProxyGetConnection::invokeRemote(const ConnectionIPtr& connection, bool, bool) { _cachedConnection = connection; - if(responseImpl(true)) + if(responseImpl(true, true)) { invokeResponseAsync(); } @@ -134,7 +134,7 @@ ProxyGetConnection::invokeRemote(const ConnectionIPtr& connection, bool, bool) AsyncStatus ProxyGetConnection::invokeCollocated(CollocatedRequestHandler*) { - if(responseImpl(true)) + if(responseImpl(true, true)) { invokeResponseAsync(); } |