diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/src/main/java/IceInternal/Selector.java | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/java/src/Ice/src/main/java/IceInternal/Selector.java b/java/src/Ice/src/main/java/IceInternal/Selector.java index 03e683420ba..c05660af7be 100644 --- a/java/src/Ice/src/main/java/IceInternal/Selector.java +++ b/java/src/Ice/src/main/java/IceInternal/Selector.java @@ -97,17 +97,13 @@ public final class Selector boolean finish(EventHandler handler, boolean closeNow) { - if(handler._registered != 0) + handler._registered = 0; + if(handler._key != null) { - if(handler._key != null) - { - handler._key.cancel(); - handler._key = null; - } - - update(handler, handler._registered, SocketOperation.None); - _changes.remove(handler); + handler._key.cancel(); + handler._key = null; } + _changes.remove(handler); return closeNow; } |