private void disconnectSessions() { if (!(service instanceof IoAcceptor)) { return; } if (!((IoAcceptor) service).isCloseOnDeactivation()) { return; } Object lock = new Object(); IoFutureListener<IoFuture> listener = new LockNotifyingListener(lock); for (IoSession s : managedSessions.values()) { s.close(true).addListener(listener); } try { synchronized (lock) { while (!managedSessions.isEmpty()) { lock.wait(500); } } } catch (InterruptedException ie) { // Ignored } }
/** * Close all the sessions * */ private void disconnectSessions() { if (!(service instanceof IoAcceptor)) { // We don't disconnect sessions for anything but an Acceptor return; } if (!((IoAcceptor) service).isCloseOnDeactivation()) { return; } Object lock = new Object(); IoFutureListener<IoFuture> listener = new LockNotifyingListener(lock); for (IoSession s : managedSessions.values()) { s.closeNow().addListener(listener); } try { synchronized (lock) { while (!managedSessions.isEmpty()) { lock.wait(500); } } } catch (InterruptedException ie) { // Ignored } }
/** * Close all the sessions * */ private void disconnectSessions() { if (!(service instanceof IoAcceptor)) { // We don't disconnect sessions for anything but an Acceptor return; } if (!((IoAcceptor) service).isCloseOnDeactivation()) { return; } Object lock = new Object(); IoFutureListener<IoFuture> listener = new LockNotifyingListener(lock); for (IoSession s : managedSessions.values()) { s.closeNow().addListener(listener); } try { synchronized (lock) { while (!managedSessions.isEmpty()) { lock.wait(500); } } } catch (InterruptedException ie) { // Ignored } }