From 875d5ce5138a6c1d9e5e20c8d893d07d30cd0124 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Wed, 7 Mar 2012 17:52:49 +0100 Subject: [PATCH] Allow to force the execution of the Runnable in a async fashion even if the IO-Thread is the current Thread --- .../io/netty/channel/socket/nio/AbstractNioWorker.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioWorker.java b/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioWorker.java index fcf092f9b7..ba4f028988 100644 --- a/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioWorker.java +++ b/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioWorker.java @@ -287,10 +287,14 @@ abstract class AbstractNioWorker implements Worker { @Override public void executeInIoThread(Runnable task) { - start(); - if (Thread.currentThread() == thread) { + executeInIoThread(task, false); + } + + public void executeInIoThread(Runnable task, boolean alwaysAsync) { + if (!alwaysAsync && Thread.currentThread() == thread) { task.run(); } else { + start(); boolean added = eventQueue.offer(task); assert added;