diff options
Diffstat (limited to 'java/src/IceInternal/Instance.java')
-rw-r--r-- | java/src/IceInternal/Instance.java | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java index 485ad754cd0..fe06fa2bf0b 100644 --- a/java/src/IceInternal/Instance.java +++ b/java/src/IceInternal/Instance.java @@ -69,7 +69,7 @@ public final class Instance return _referenceFactory; } - + public synchronized ProxyFactory proxyFactory() { @@ -158,6 +158,22 @@ public final class Instance return _serverThreadPool; } + synchronized public Timer + timer() + { + if(_state == StateDestroyed) + { + throw new Ice.CommunicatorDestroyedException(); + } + + if(_timer == null) // Lazy initialization. + { + _timer = new Timer(this); + } + + return _timer; + } + public boolean threadPerConnection() { @@ -460,6 +476,7 @@ public final class Instance IceUtil.Assert.FinalizerAssert(_objectAdapterFactory == null); IceUtil.Assert.FinalizerAssert(_clientThreadPool == null); IceUtil.Assert.FinalizerAssert(_serverThreadPool == null); + IceUtil.Assert.FinalizerAssert(_timer == null); IceUtil.Assert.FinalizerAssert(_routerManager == null); IceUtil.Assert.FinalizerAssert(_locatorManager == null); IceUtil.Assert.FinalizerAssert(_endpointFactoryManager == null); @@ -585,7 +602,7 @@ public final class Instance if(_connectionMonitor != null) { - _connectionMonitor._destroy(); + _connectionMonitor.destroy(); _connectionMonitor = null; } @@ -603,6 +620,12 @@ public final class Instance _clientThreadPool = null; } + if(_timer != null) + { + _timer._destroy(); + _timer = null; + } + if(_servantFactoryManager != null) { _servantFactoryManager.destroy(); @@ -725,6 +748,7 @@ public final class Instance private ObjectAdapterFactory _objectAdapterFactory; private ThreadPool _clientThreadPool; private ThreadPool _serverThreadPool; + private Timer _timer; private final boolean _threadPerConnection; private final int _threadPerConnectionStackSize; private EndpointFactoryManager _endpointFactoryManager; |