From 883af62c92a30206974f4699cc01c3ab5cac3850 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Fri, 31 Aug 2012 00:36:12 +0200 Subject: [PATCH] Correctly set wakeup.compareAndSet(..) before wakeup the Selector. See #578 --- .../netty/channel/socket/nio/AbstractNioWorker.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jboss/netty/channel/socket/nio/AbstractNioWorker.java b/src/main/java/org/jboss/netty/channel/socket/nio/AbstractNioWorker.java index 3ceb805f78..783a5a1cb9 100644 --- a/src/main/java/org/jboss/netty/channel/socket/nio/AbstractNioWorker.java +++ b/src/main/java/org/jboss/netty/channel/socket/nio/AbstractNioWorker.java @@ -398,11 +398,14 @@ abstract class AbstractNioWorker implements Worker { assert added; if (added) { - // wake up the selector to speed things - Selector selector = this.selector; - if (selector != null) { - selector.wakeup(); + if (wakenUp.compareAndSet(false, true)) { + // wake up the selector to speed things + Selector selector = this.selector; + if (selector != null) { + selector.wakeup(); + } } + } }