From 39018c20e012fafceab6439fcbc8782ef642e81f Mon Sep 17 00:00:00 2001 From: Joel Dice Date: Tue, 11 Jan 2011 18:39:48 -0700 Subject: [PATCH] check connection readyness in SocketChannel.finishConnect if necessary --- classpath/java/nio/channels/SocketChannel.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/classpath/java/nio/channels/SocketChannel.java b/classpath/java/nio/channels/SocketChannel.java index d0296f4833..65c9768d88 100644 --- a/classpath/java/nio/channels/SocketChannel.java +++ b/classpath/java/nio/channels/SocketChannel.java @@ -67,11 +67,16 @@ public class SocketChannel extends SelectableChannel public boolean finishConnect() throws IOException { if (! connected) { - while (blocking && ! readyToConnect) { + while (! readyToConnect) { Selector selector = Selector.open(); SelectionKey key = register(selector, SelectionKey.OP_CONNECT, null); - selector.select(); + if (blocking) { + selector.select(); + } else { + selector.selectNow(); + break; + } } natFinishConnect(socket);