diff options
author | Matthew Newhook <matthew@zeroc.com> | 2005-10-26 03:39:40 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2005-10-26 03:39:40 +0000 |
commit | 4935322e70ff6cf550a6ec59df27e674e4d48dc5 (patch) | |
tree | bd5291472e140b618c9e8f26ca259a4dab836622 /cpp/src | |
parent | sync ConnectionMonitor with C++ (diff) | |
download | ice-4935322e70ff6cf550a6ec59df27e674e4d48dc5.tar.bz2 ice-4935322e70ff6cf550a6ec59df27e674e4d48dc5.tar.xz ice-4935322e70ff6cf550a6ec59df27e674e4d48dc5.zip |
sync ConnectionMonitor with java/C#
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/ConnectionMonitor.cpp | 19 | ||||
-rw-r--r-- | cpp/src/Ice/ConnectionMonitor.h | 2 |
2 files changed, 5 insertions, 16 deletions
diff --git a/cpp/src/Ice/ConnectionMonitor.cpp b/cpp/src/Ice/ConnectionMonitor.cpp index bc928bada5d..6b868555bcc 100644 --- a/cpp/src/Ice/ConnectionMonitor.cpp +++ b/cpp/src/Ice/ConnectionMonitor.cpp @@ -27,7 +27,6 @@ IceInternal::ConnectionMonitor::destroy() IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); assert(_instance); - _instance = 0; _connections.clear(); @@ -55,9 +54,9 @@ IceInternal::ConnectionMonitor::remove(const ConnectionIPtr& connection) IceInternal::ConnectionMonitor::ConnectionMonitor(const InstancePtr& instance, int interval) : _instance(instance), - _interval(interval) + _interval(IceUtil::Time::seconds(interval)) { - assert(_interval > 0); + assert(interval > 0); start(); } @@ -70,25 +69,17 @@ IceInternal::ConnectionMonitor::~ConnectionMonitor() void IceInternal::ConnectionMonitor::run() { - IceUtil::Time waitTime = IceUtil::Time::seconds(_interval); - while(true) { set<ConnectionIPtr> connections; { IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); - - if(!_instance) - { - return; - } - - if(!timedWait(waitTime)) + if(_instance && !timedWait(_interval)) { connections = _connections; } - + if(!_instance) { return; @@ -108,7 +99,6 @@ IceInternal::ConnectionMonitor::run() catch(const Exception& ex) { IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); - if(!_instance) { return; @@ -120,7 +110,6 @@ IceInternal::ConnectionMonitor::run() catch(...) { IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); - if(!_instance) { return; diff --git a/cpp/src/Ice/ConnectionMonitor.h b/cpp/src/Ice/ConnectionMonitor.h index bab3274f7c4..ff292a3869b 100644 --- a/cpp/src/Ice/ConnectionMonitor.h +++ b/cpp/src/Ice/ConnectionMonitor.h @@ -39,7 +39,7 @@ private: virtual void run(); InstancePtr _instance; - const Ice::Int _interval; + const IceUtil::Time _interval; std::set<Ice::ConnectionIPtr> _connections; }; |