diff --git a/sdk/src/org.graalvm.nativebridge/src/org/graalvm/nativebridge/ProcessIsolateThreadSupport.java b/sdk/src/org.graalvm.nativebridge/src/org/graalvm/nativebridge/ProcessIsolateThreadSupport.java index 81077f95f25d..0868bcae4daf 100644 --- a/sdk/src/org.graalvm.nativebridge/src/org/graalvm/nativebridge/ProcessIsolateThreadSupport.java +++ b/sdk/src/org.graalvm.nativebridge/src/org/graalvm/nativebridge/ProcessIsolateThreadSupport.java @@ -419,6 +419,8 @@ private ThreadChannel(ProcessIsolateThreadSupport owner, SocketChannel channel, */ @Override public void close() throws IOException { + selector.close(); + channel.configureBlocking(true); channel.close(); } @@ -636,9 +638,8 @@ private void cancelWorkerThreads() throws InterruptedException { private Runnable createDispatchRunnable(SocketChannel peerThreadChannel) { return () -> { - try (SocketChannel s = peerThreadChannel) { - Thread currentThread = Thread.currentThread(); - ThreadChannel threadChannel = new ThreadChannel(this, s, currentThread); + Thread currentThread = Thread.currentThread(); + try (ThreadChannel threadChannel = new ThreadChannel(this, peerThreadChannel, currentThread)) { workerThreads.add(threadChannel); try { dispatchSupport.onWorkerThreadStarted(currentThread, threadChannel);