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/demo/Database/library/ReapThread.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/demo/Database/library/ReapThread.java')
-rw-r--r-- | java/demo/Database/library/ReapThread.java | 126 |
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>(); -} |