diff options
author | Matthew Newhook <matthew@zeroc.com> | 2014-07-23 15:06:02 -0230 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2014-07-23 15:06:02 -0230 |
commit | 866f9ff17391176b836f9bb49f6da40c2c938441 (patch) | |
tree | 7366963294ef3356c7b887cd89af753988c21beb /java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java | |
parent | adding ACM tests for Python/Ruby/PHP (diff) | |
download | ice-866f9ff17391176b836f9bb49f6da40c2c938441.tar.bz2 ice-866f9ff17391176b836f9bb49f6da40c2c938441.tar.xz ice-866f9ff17391176b836f9bb49f6da40c2c938441.zip |
ICE-4234 - Update Ice to use current Java threading constructs
- Use ScheduledThreadPoolDispatcher not IceUtilInternal.Timer.
- Use Ice timer in glacier2, Freeze impl.
- Align C++, C# with java changes.
- Database demo now supports mariadb.
Diffstat (limited to 'java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java')
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java | 76 |
1 files changed, 17 insertions, 59 deletions
diff --git a/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java b/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java index bc3ccc66f1f..a1e02833a58 100644 --- a/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java +++ b/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java @@ -89,54 +89,6 @@ import IceGridGUI.*; public class MetricsViewEditor extends Editor implements MetricsFieldContext { - private static class RefreshThread extends Thread - { - RefreshThread(long period, MetricsView node) - { - _period = period; - _node = node; - _done = false; - } - - synchronized public void - run() - { - while(true) - { - _node.fetchMetricsView(); - if(!_done) - { - try - { - wait(_period * 1000); - } - catch(InterruptedException ex) - { - } - } - - if(_done) - { - break; - } - } - } - - synchronized public void - done() - { - if(!_done) - { - _done = true; - notify(); - } - } - - private final long _period; - private final MetricsView _node; - private boolean _done = false; - } - // // This class allow to render a button in JTable cell. // @@ -242,7 +194,7 @@ public class MetricsViewEditor extends Editor implements MetricsFieldContext // // Stop the refresh thread. // - MetricsViewEditor.stopRefreshThread(); + MetricsViewEditor.stopRefresh(); // // If selected node is a MetricsView and it is enabled; start the refresh thread. @@ -250,7 +202,7 @@ public class MetricsViewEditor extends Editor implements MetricsFieldContext if(e.isAddedPath() && e.getPath().getLastPathComponent() instanceof MetricsView && ((MetricsView )e.getPath().getLastPathComponent()).isEnabled()) { - MetricsViewEditor.startRefreshThread((MetricsView)e.getPath().getLastPathComponent()); + MetricsViewEditor.startRefresh((MetricsView)e.getPath().getLastPathComponent()); } if(e.isAddedPath()) @@ -311,19 +263,25 @@ public class MetricsViewEditor extends Editor implements MetricsFieldContext return _refreshPeriod; } - synchronized static void startRefreshThread(MetricsView node) + synchronized static void startRefresh(final MetricsView node) { - assert(_refreshThread == null); - _refreshThread = new RefreshThread(_refreshPeriod, node); - _refreshThread.start(); + assert(_refreshFuture == null); + _refreshFuture = node.getCoordinator().getExecutor().scheduleAtFixedRate(new Runnable() + { + public void run() + { + node.fetchMetricsView(); + } + + }, _refreshPeriod, _refreshPeriod, java.util.concurrent.TimeUnit.MILLISECONDS); } - synchronized static void stopRefreshThread() + synchronized static void stopRefresh() { - if(_refreshThread != null) + if(_refreshFuture != null) { - _refreshThread.done(); - _refreshThread = null; + _refreshFuture.cancel(false); + _refreshFuture = null; } } @@ -1107,7 +1065,7 @@ public class MetricsViewEditor extends Editor implements MetricsFieldContext Map<Integer, MetricsField> _fields = new HashMap<Integer, MetricsField>(); } - private static RefreshThread _refreshThread; + private static java.util.concurrent.Future<?> _refreshFuture; private Map<String, JTable> _tables = new HashMap<String, JTable>(); |