public final void run() { doRun(); }
/** * 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); } }
public void run() { try { runnable.run(); } finally { // if "next" is not null, then trigger "next" to execute; // else if "next" is null, set "next" to END, means end this linked list if (!compareAndSetNext(this, null, end)) { doUnorderedExecute(next); } } } }
ChannelEventRunnable eventTask = (ChannelEventRunnable) task; eventTask.estimatedSize = increment; Channel channel = eventTask.getEvent().getChannel(); long channelCounter = getChannelCounter(channel).addAndGet(increment); if (channel.isReadable()) { ChannelHandlerContext ctx = eventTask.getContext(); if (ctx.getHandler() instanceof ExecutionHandler) {
Channel channel = eventTask.getEvent().getChannel(); long channelCounter = getChannelCounter(channel).addAndGet(-increment); if (!channel.isReadable()) { ChannelHandlerContext ctx = eventTask.getContext(); if (ctx.getHandler() instanceof ExecutionHandler) {
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);