summaryrefslogtreecommitdiff
path: root/java/demo/Database/library/ReapThread.java
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2014-07-23 15:06:02 -0230
committerMatthew Newhook <matthew@zeroc.com>2014-07-23 15:06:02 -0230
commit866f9ff17391176b836f9bb49f6da40c2c938441 (patch)
tree7366963294ef3356c7b887cd89af753988c21beb /java/demo/Database/library/ReapThread.java
parentadding ACM tests for Python/Ruby/PHP (diff)
downloadice-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/demo/Database/library/ReapThread.java')
-rw-r--r--java/demo/Database/library/ReapThread.java126
1 files changed, 0 insertions, 126 deletions
diff --git a/java/demo/Database/library/ReapThread.java b/java/demo/Database/library/ReapThread.java
deleted file mode 100644
index a5b43dc135d..00000000000
--- a/java/demo/Database/library/ReapThread.java
+++ /dev/null
@@ -1,126 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-import Demo.*;
-
-class ReapThread extends Thread
-{
- static class SessionProxyPair
- {
- SessionProxyPair(Demo.SessionPrx p, SessionI s)
- {
- glacier2proxy = null;
- proxy = p;
- session = s;
- }
-
- SessionProxyPair(Glacier2.SessionPrx p, SessionI s)
- {
- glacier2proxy = p;
- proxy = null;
- session = s;
- }
-
- Glacier2.SessionPrx glacier2proxy;
- Demo.SessionPrx proxy;
- SessionI session;
- }
-
- ReapThread(Ice.Logger logger, long timeout)
- {
- _logger = logger;
- _timeout = timeout;
- }
-
- synchronized public void
- run()
- {
- while(!_terminated)
- {
- try
- {
- wait((_timeout / 2) * 1000);
- }
- catch(InterruptedException e)
- {
- }
-
- if(!_terminated)
- {
- java.util.Iterator<SessionProxyPair> p = _sessions.iterator();
- while(p.hasNext())
- {
- SessionProxyPair s = p.next();
- try
- {
- //
- // Session destruction may take time in a
- // real-world example. Therefore the current time
- // is computed for each iteration.
- //
- if((System.currentTimeMillis() - s.session.timestamp()) > _timeout * 1000)
- {
- _logger.trace("ReapThread", "The session " +
- s.proxy.ice_getCommunicator().identityToString(s.proxy.ice_getIdentity()) +
- " has timed out.");
- if(s.proxy != null)
- {
- s.proxy.destroy();
- }
- else
- {
- s.glacier2proxy.destroy();
- }
- p.remove();
- }
- }
- catch(Ice.ObjectNotExistException e)
- {
- p.remove();
- }
- }
- }
- }
- }
-
- synchronized public void
- terminate()
- {
- _terminated = true;
- notify();
-
- // Destroy each of the sessions, releasing any resources they
- // may hold. This calls directly on the session, not via the
- // proxy since terminate() is called after the communicator is
- // shutdown, which means calls on collocated objects are not
- // permitted.
- for(SessionProxyPair p : _sessions)
- {
- p.session.shutdown();
- }
- _sessions.clear();
- }
-
- synchronized public void
- add(SessionPrx proxy, SessionI session)
- {
- _sessions.add(new SessionProxyPair(proxy, session));
- }
-
- synchronized public void
- add(Glacier2.SessionPrx proxy, SessionI session)
- {
- _sessions.add(new SessionProxyPair(proxy, session));
- }
-
- private final long _timeout; // Seconds.
- private Ice.Logger _logger;
- private boolean _terminated = false;
- private java.util.List<SessionProxyPair> _sessions = new java.util.LinkedList<SessionProxyPair>();
-}