@Override protected boolean begin() { if (super.begin()) { Iterator<T> it = items.iterator(); promiseFactory.executor().execute(() -> pushData(it)); return true; } return false; }
private void pushData(Iterator<T> it) { while (it.hasNext()) { try { long returnValue = closed.get() == CLOSED ? -1 : handleEvent(data(it.next())); if (returnValue != 0) { if (returnValue < 0) { close(); return; } else { promiseFactory.scheduledExecutor() .schedule( () -> promiseFactory.executor() .execute(() -> pushData(it)), returnValue, MILLISECONDS); return; } } } catch (Exception e) { close(error(e)); } } close(); } };
private void pushData(Iterator<T> it) { while (it.hasNext()) { try { long returnValue = closed.get() == CLOSED ? -1 : handleEvent(data(it.next())); if (returnValue != 0) { if (returnValue < 0) { close(); return; } else { promiseFactory.scheduledExecutor() .schedule( () -> promiseFactory.executor() .execute(() -> pushData(it)), returnValue, MILLISECONDS); return; } } } catch (Exception e) { close(error(e)); } } close(); } };
private void pushData(Iterator<T> it) { while (it.hasNext()) { try { long returnValue = closed.get() == CLOSED ? -1 : handleEvent(data(it.next())); if (returnValue != 0) { if (returnValue < 0) { close(); return; } else { promiseFactory.scheduledExecutor() .schedule( () -> promiseFactory.executor() .execute(() -> pushData(it)), returnValue, MILLISECONDS); return; } } } catch (Exception e) { close(error(e)); } } close(); } };
@Override protected boolean begin() { if (super.begin()) { Iterator<T> it = items.iterator(); promiseFactory.executor().execute(() -> pushData(it)); return true; } return false; }
@Override protected boolean begin() { if (super.begin()) { Iterator<T> it = items.iterator(); promiseFactory.executor().execute(() -> pushData(it)); return true; } return false; }