diff --git a/src/java/com/threerings/presents/server/ClientManager.java b/src/java/com/threerings/presents/server/ClientManager.java index d49fcfa79..be933a5a3 100644 --- a/src/java/com/threerings/presents/server/ClientManager.java +++ b/src/java/com/threerings/presents/server/ClientManager.java @@ -105,12 +105,13 @@ public class ClientManager // start up an interval that will check for expired clients and flush them from the bowels // of the server - new Interval(omgr) { + _flushClients = new Interval(omgr) { @Override public void expired () { flushClients(); } - }.schedule(CLIENT_FLUSH_INTERVAL, true); + }; + _flushClients.schedule(CLIENT_FLUSH_INTERVAL, true); } /** @@ -127,6 +128,8 @@ public class ClientManager { log.info("Client manager shutting down [ccount=" + _usermap.size() + "]."); + _flushClients.cancel(); + // inform all of our clients that they are being shut down synchronized (_usermap) { for (PresentsSession pc : _usermap.values()) { @@ -573,6 +576,9 @@ public class ClientManager /** Tracks registered {@link ClientObserver}s. */ protected ObserverList _clobservers = ObserverList.newSafeInOrder(); + /** Interval to flush expired clients. */ + protected Interval _flushClients; + // our injected dependencies @Inject protected PresentsDObjectMgr _omgr;