/** called by the timer thread when one of the timer events we set has expired. */ public synchronized void returnToClientQ(TimerEvent event) { if (m_ReturnedEventsQ == null) { m_ReturnedEventsQ = event; event.setNext(null); } else { TimerEvent current = m_ReturnedEventsQ; while (current.getNext() != null) current = current.getNext(); current.setNext(event); event.setNext(null); } interrupt(); }