private synchronized EventBuffer swap(EventBuffer buffer) { if (queue.isEmpty() || !running) { flushPending = false; return null; } EventBuffer toReturn = queue; queue = buffer; return toReturn; } }
public void run() { EventBuffer buffer = new EventBuffer(); while (_commands.isRunning()) { buffer = _commands.swap(buffer); _commandExecutor.execute(buffer); buffer.clear(); } }
public synchronized int size() { return _queue.size(); }
private synchronized void put(Runnable r) { queue.add(r); if (running && !flushPending) { _flushExecutor.execute(_flushRunnable); flushPending = true; } }
private void flush() { EventBuffer swap = _queue.swap(buffer); while (swap != null) { buffer = swap; _commandExecutor.execute(buffer); buffer.clear(); swap = _queue.swap(buffer); } }
public void run() { EventBuffer buffer = new EventBuffer(); while (_commands.isRunning()) { buffer = _commands.swap(buffer); _commandExecutor.execute(buffer); buffer.clear(); } }
public synchronized int size() { return _queue.size(); }
private synchronized void put(Runnable r) { queue.add(r); if (running && !flushPending) { _flushExecutor.execute(_flushRunnable); flushPending = true; } }
private void flush() { EventBuffer swap = _queue.swap(buffer); while (swap != null) { buffer = swap; _commandExecutor.execute(buffer); buffer.clear(); swap = _queue.swap(buffer); } }
@Override public void run() { EventBuffer buffer = new EventBuffer(); while (selectorRunning) { try { buffer.clear(); } catch (ClosedSelectorException closed) { break;
private synchronized EventBuffer swap(EventBuffer buffer) { if (queue.isEmpty() || !running) { flushPending = false; return null; } EventBuffer toReturn = queue; queue = buffer; return toReturn; } }
public synchronized int size() { return _queue.size(); }
public void put(Runnable r) { _lock.lock(); try { _queue.add(r); _waiter.signal(); } finally { _lock.unlock(); } }
@Override public void run() { EventBuffer buffer = new EventBuffer(); while (selectorRunning) { try { buffer.clear(); } catch (ClosedSelectorException closed) { break;
public boolean isEmpty() { _lock.lock(); try { return _queue.isEmpty(); } finally { _lock.unlock(); } } }
public synchronized int size() { return _queue.size(); }
public void put(Runnable r) { _lock.lock(); try { _queue.add(r); _waiter.signal(); } finally { _lock.unlock(); } }