diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2008-10-28 13:02:28 -0230 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2008-10-28 13:02:28 -0230 |
commit | d439795f3f59182c53e98e8b92fb3171768e03c3 (patch) | |
tree | 169feecdf4e2e61b8c4f0ddda199cd6e191e8adc /cpp/src/Ice/Instance.cpp | |
parent | Bug 3410 - Check connections for ACM at more appropriate interval (diff) | |
parent | Fixed bug 3513 - AMI retry bug (diff) | |
download | ice-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.cpp | 23 |
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) { |