/** * Stop collecting stats. all the {@link IoSessionStat} object will be removed of the * polled session attachements. */ public void stop() { synchronized (this) { if (worker == null) { return; } service.removeListener(serviceListener); // stop worker worker.stop = true; worker.interrupt(); while (worker.isAlive()) { try { worker.join(); } catch (InterruptedException e) { //ignore since this is shutdown time } } for (Iterator iter = polledSessions.iterator(); iter.hasNext();) { IoSession session = (IoSession) iter.next(); session.removeAttribute(KEY); } polledSessions.clear(); worker = null; } }