public synchronized void sendNow(final Event event) { // Expand the event parms final EventExpander expander = new EventExpander(); expander.setEventConfDao(new EmptyEventConfDao()); expander.expandEvent(event); m_pendingEvents++; LogUtils.debugf(this, "StartEvent processing (%d remaining)", m_pendingEvents); LogUtils.debugf(this, "Received: ", new EventWrapper(event)); m_anticipator.eventReceived(event); final Runnable r = new Runnable() { public void run() { try { m_eventWriter.writeEvent(event); broadcastNow(event); m_anticipator.eventProcessed(event); } finally { synchronized (MockEventIpcManager.this) { m_pendingEvents--; LogUtils.debugf(this, "Finished processing event (%d remaining)", m_pendingEvents); MockEventIpcManager.this.notifyAll(); } } } }; if (isSynchronous()) { r.run(); } else { getScheduler().schedule(r, m_eventDelay, TimeUnit.MILLISECONDS); } }
public void reset() { m_listeners = new ArrayList<ListenerKeeper>(); m_anticipator.reset(); }