summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Instance.cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2008-10-28 13:02:28 -0230
committerDwayne Boone <dwayne@zeroc.com>2008-10-28 13:02:28 -0230
commitd439795f3f59182c53e98e8b92fb3171768e03c3 (patch)
tree169feecdf4e2e61b8c4f0ddda199cd6e191e8adc /cpp/src/Ice/Instance.cpp
parentBug 3410 - Check connections for ACM at more appropriate interval (diff)
parentFixed bug 3513 - AMI retry bug (diff)
downloadice-d439795f3f59182c53e98e8b92fb3171768e03c3.tar.bz2
ice-d439795f3f59182c53e98e8b92fb3171768e03c3.tar.xz
ice-d439795f3f59182c53e98e8b92fb3171768e03c3.zip
Merge branch 'R3_3_branch' of ssh://cvs.wpb.zeroc.com/home/git/ice into R3_3_branch
Diffstat (limited to 'cpp/src/Ice/Instance.cpp')
-rw-r--r--cpp/src/Ice/Instance.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp
index 4d388ee36b1..315eaeba8c5 100644
--- a/cpp/src/Ice/Instance.cpp
+++ b/cpp/src/Ice/Instance.cpp
@@ -29,6 +29,7 @@
#include <Ice/LoggerI.h>
#include <Ice/Network.h>
#include <Ice/EndpointFactoryManager.h>
+#include <Ice/RetryQueue.h>
#include <Ice/TcpEndpointI.h>
#include <Ice/UdpEndpointI.h>
#include <Ice/DynamicLibrary.h>
@@ -285,6 +286,19 @@ IceInternal::Instance::endpointHostResolver()
return _endpointHostResolver;
}
+RetryQueuePtr
+IceInternal::Instance::retryQueue()
+{
+ IceUtil::RecMutex::Lock sync(*this);
+
+ if(_state == StateDestroyed)
+ {
+ throw CommunicatorDestroyedException(__FILE__, __LINE__);
+ }
+
+ return _retryQueue;
+}
+
IceUtil::TimerPtr
IceInternal::Instance::timer()
{
@@ -991,6 +1005,8 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
_servantFactoryManager = new ObjectFactoryManager();
_objectAdapterFactory = new ObjectAdapterFactory(this, communicator);
+
+ _retryQueue = new RetryQueue(this);
if(_initData.wstringConverter == 0)
{
@@ -1039,6 +1055,7 @@ IceInternal::Instance::~Instance()
assert(!_serverThreadPool);
assert(!_selectorThread);
assert(!_endpointHostResolver);
+ assert(!_retryQueue);
assert(!_timer);
assert(!_routerManager);
assert(!_locatorManager);
@@ -1206,6 +1223,11 @@ IceInternal::Instance::destroy()
_outgoingConnectionFactory->waitUntilFinished();
}
+ if(_retryQueue)
+ {
+ _retryQueue->destroy();
+ }
+
ThreadPoolPtr serverThreadPool;
ThreadPoolPtr clientThreadPool;
SelectorThreadPtr selectorThread;
@@ -1216,6 +1238,7 @@ IceInternal::Instance::destroy()
_objectAdapterFactory = 0;
_outgoingConnectionFactory = 0;
+ _retryQueue = 0;
if(_connectionMonitor)
{