private void handleQuiesced(Reactor reactor, Selector selector) throws IOException { // check if we are still quiesced, other handlers of // PN_REACTOR_QUIESCED could have produced more events to process if (!reactor.quiesced()) return; selector.select(reactor.getTimeout()); reactor.mark(); Iterator<Selectable> selectables = selector.readable(); while(selectables.hasNext()) { selectables.next().readable(); } selectables = selector.writeable(); while(selectables.hasNext()) { selectables.next().writeable(); } selectables = selector.expired(); while(selectables.hasNext()) { selectables.next().expired(); } selectables = selector.error(); while(selectables.hasNext()) { selectables.next().error(); } reactor.yield(); }
case SELECTABLE_INIT: selectable = event.getSelectable(); selector.add(selectable); break; case SELECTABLE_UPDATED: selectable = event.getSelectable(); selector.update(selectable); break; case SELECTABLE_FINAL: selectable = event.getSelectable(); selector.remove(selectable); selectable.release(); break;
@Override public void free() { if (wakeup.source().isOpen()) { try { wakeup.source().close(); } catch(IOException e) { // Ignore. } } if (wakeup.sink().isOpen()) { try { wakeup.sink().close(); } catch(IOException e) { // Ignore } } if (selector != null) { selector.free(); } for (ReactorChild child : children) { child.free(); } }
case SELECTABLE_INIT: selectable = event.getSelectable(); selector.add(selectable); break; case SELECTABLE_UPDATED: selectable = event.getSelectable(); selector.update(selectable); break; case SELECTABLE_FINAL: selectable = event.getSelectable(); selector.remove(selectable); selectable.release(); break;
@Override public void free() { if (wakeup.source().isOpen()) { try { wakeup.source().close(); } catch(IOException e) { // Ignore. } } if (wakeup.sink().isOpen()) { try { wakeup.sink().close(); } catch(IOException e) { // Ignore } } if (selector != null) { selector.free(); } for (ReactorChild child : children) { child.free(); } }
private void handleQuiesced(Reactor reactor, Selector selector) throws IOException { // check if we are still quiesced, other handlers of // PN_REACTOR_QUIESCED could have produced more events to process if (!reactor.quiesced()) return; selector.select(reactor.getTimeout()); reactor.mark(); Iterator<Selectable> selectables = selector.readable(); while(selectables.hasNext()) { selectables.next().readable(); } selectables = selector.writeable(); while(selectables.hasNext()) { selectables.next().writeable(); } selectables = selector.expired(); while(selectables.hasNext()) { selectables.next().expired(); } selectables = selector.error(); while(selectables.hasNext()) { selectables.next().error(); } reactor.yield(); }