summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ProxyFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/ProxyFactory.cpp')
-rw-r--r--cpp/src/Ice/ProxyFactory.cpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/cpp/src/Ice/ProxyFactory.cpp b/cpp/src/Ice/ProxyFactory.cpp
index 37ffe383e64..187bea401b8 100644
--- a/cpp/src/Ice/ProxyFactory.cpp
+++ b/cpp/src/Ice/ProxyFactory.cpp
@@ -108,10 +108,10 @@ IceInternal::ProxyFactory::referenceToProxy(const ReferencePtr& ref) const
}
}
-void
+int
IceInternal::ProxyFactory::checkRetryAfterException(const LocalException& ex,
const ReferencePtr& ref,
- OutgoingAsync* out,
+ bool sleep,
int& cnt) const
{
TraceLevelsPtr traceLevels = _instance->traceLevels();
@@ -147,11 +147,7 @@ IceInternal::ProxyFactory::checkRetryAfterException(const LocalException& ex,
out << "retrying operation call to add proxy to router\n" << ex;
}
- if(out)
- {
- out->__send();
- }
- return; // We must always retry, so we don't look at the retry count.
+ return 0; // We must always retry, so we don't look at the retry count.
}
else if(ref->isIndirect())
{
@@ -252,17 +248,14 @@ IceInternal::ProxyFactory::checkRetryAfterException(const LocalException& ex,
out << " because of exception\n" << ex;
}
- if(out)
- {
- out->__retry(interval);
- }
- else if(interval > 0)
+ if(sleep && interval > 0)
{
//
// Sleep before retrying.
//
IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(interval));
}
+ return interval;
}
IceInternal::ProxyFactory::ProxyFactory(const InstancePtr& instance) :