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);