summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/ConnectionACMMonitor.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/ConnectionACMMonitor.java')
-rw-r--r--java/src/IceInternal/ConnectionACMMonitor.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/java/src/IceInternal/ConnectionACMMonitor.java b/java/src/IceInternal/ConnectionACMMonitor.java
index b8a8021c980..effc30949eb 100644
--- a/java/src/IceInternal/ConnectionACMMonitor.java
+++ b/java/src/IceInternal/ConnectionACMMonitor.java
@@ -11,7 +11,8 @@ package IceInternal;
class ConnectionACMMonitor implements ACMMonitor
{
- ConnectionACMMonitor(FactoryACMMonitor parent, Timer timer, ACMConfig config)
+ ConnectionACMMonitor(FactoryACMMonitor parent, java.util.concurrent.ScheduledExecutorService timer,
+ ACMConfig config)
{
_parent = parent;
_timer = timer;
@@ -42,7 +43,8 @@ class ConnectionACMMonitor implements ACMMonitor
_connection = connection;
if(_config.timeout > 0)
{
- _timer.scheduleRepeated(this, _config.timeout / 2);
+ _future = _timer.scheduleAtFixedRate(this, _config.timeout / 2, _config.timeout / 2,
+ java.util.concurrent.TimeUnit.MILLISECONDS);
}
}
@@ -53,7 +55,8 @@ class ConnectionACMMonitor implements ACMMonitor
_connection = null;
if(_config.timeout > 0)
{
- _timer.cancel(this);
+ _future.cancel(false);
+ _future = null;
}
}
@@ -80,7 +83,7 @@ class ConnectionACMMonitor implements ACMMonitor
}
public void
- runTimerTask()
+ run()
{
Ice.ConnectionI connection;
synchronized(this)
@@ -103,7 +106,8 @@ class ConnectionACMMonitor implements ACMMonitor
}
final private FactoryACMMonitor _parent;
- final private Timer _timer;
+ final private java.util.concurrent.ScheduledExecutorService _timer;
+ private java.util.concurrent.Future<?> _future;
final private ACMConfig _config;
private Ice.ConnectionI _connection;