/** * Executes the specified task concurrently while maintaining the event * order. */ @Override protected void doExecute(Runnable task) { if (!(task instanceof ChannelEventRunnable)) { doUnorderedExecute(task); } else { ChannelEventRunnable r = (ChannelEventRunnable) task; getChildExecutor(r.getEvent()).execute(task); } }
cause = new IOException("Unable to process queued event"); ChannelEvent event = ((ChannelEventRunnable) task).getEvent(); event.getFuture().setFailure(cause);
private void removeIfClosed(ChannelEventRunnable eventRunnable, Object key) { ChannelEvent event = eventRunnable.getEvent(); if (event instanceof ChannelStateEvent) { ChannelStateEvent se = (ChannelStateEvent) event; if (se.getState() == ChannelState.OPEN && !event.getChannel().isOpen()) { removeKey(key); } } }
Object key = getKey(eventRunnable.getEvent()); EventTask previousEventTask = map.put(key, newEventTask);
if (task instanceof ChannelEventRunnable) { ChannelEventRunnable eventRunnable = (ChannelEventRunnable) task; ChannelEvent event = eventRunnable.getEvent(); EventTask newEventTask = new EventTask(eventRunnable);
ChannelEventRunnable eventTask = (ChannelEventRunnable) task; eventTask.estimatedSize = increment; Channel channel = eventTask.getEvent().getChannel(); long channelCounter = getChannelCounter(channel).addAndGet(increment);
Channel channel = eventTask.getEvent().getChannel(); long channelCounter = getChannelCounter(channel).addAndGet(-increment);