From 630e47238e1179009ccd99790703cc2f0ccd03b5 Mon Sep 17 00:00:00 2001 From: Claes Redestad Date: Mon, 18 Apr 2016 14:01:03 +0200 Subject: [PATCH] 8154436: Drop code to support Windows XP in windows async channel impl Reviewed-by: chegar, alanb --- .../windows/classes/sun/nio/ch/Iocp.java | 16 ----------- .../WindowsAsynchronousFileChannelImpl.java | 27 +++---------------- ...wsAsynchronousServerSocketChannelImpl.java | 6 +---- .../WindowsAsynchronousSocketChannelImpl.java | 6 +---- 4 files changed, 5 insertions(+), 50 deletions(-) diff --git a/jdk/src/java.base/windows/classes/sun/nio/ch/Iocp.java b/jdk/src/java.base/windows/classes/sun/nio/ch/Iocp.java index 715046a0ede..7a2516437bf 100644 --- a/jdk/src/java.base/windows/classes/sun/nio/ch/Iocp.java +++ b/jdk/src/java.base/windows/classes/sun/nio/ch/Iocp.java @@ -34,8 +34,6 @@ import java.util.*; import java.util.concurrent.*; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; -import java.security.AccessController; -import sun.security.action.GetPropertyAction; import jdk.internal.misc.Unsafe; /** @@ -46,7 +44,6 @@ import jdk.internal.misc.Unsafe; class Iocp extends AsynchronousChannelGroupImpl { private static final Unsafe unsafe = Unsafe.getUnsafe(); private static final long INVALID_HANDLE_VALUE = -1L; - private static final boolean supportsThreadAgnosticIo; // maps completion key to channel private final ReadWriteLock keyToChannelLock = new ReentrantReadWriteLock(); @@ -90,13 +87,6 @@ class Iocp extends AsynchronousChannelGroupImpl { PendingFuture getByOverlapped(long overlapped); } - /** - * Indicates if this operating system supports thread agnostic I/O. - */ - static boolean supportsThreadAgnosticIo() { - return supportsThreadAgnosticIo; - } - // release all resources void implClose() { synchronized (this) { @@ -445,11 +435,5 @@ class Iocp extends AsynchronousChannelGroupImpl { static { IOUtil.load(); initIDs(); - - // thread agnostic I/O on Vista/2008 or newer - String osversion = AccessController.doPrivileged( - new GetPropertyAction("os.version")); - String vers[] = osversion.split("\\."); - supportsThreadAgnosticIo = Integer.parseInt(vers[0]) >= 6; } } diff --git a/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java b/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java index 6a5879f6a2e..30f62f22f71 100644 --- a/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java +++ b/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java @@ -318,20 +318,7 @@ public class WindowsAsynchronousFileChannelImpl result.setContext(lockTask); // initiate I/O - if (Iocp.supportsThreadAgnosticIo()) { - lockTask.run(); - } else { - boolean executed = false; - try { - Invoker.invokeOnThreadInThreadPool(this, lockTask); - executed = true; - } finally { - if (!executed) { - // rollback - removeFromFileLockTable(fli); - } - } - } + lockTask.run(); return result; } @@ -556,11 +543,7 @@ public class WindowsAsynchronousFileChannelImpl result.setContext(readTask); // initiate I/O - if (Iocp.supportsThreadAgnosticIo()) { - readTask.run(); - } else { - Invoker.invokeOnThreadInThreadPool(this, readTask); - } + readTask.run(); return result; } @@ -730,11 +713,7 @@ public class WindowsAsynchronousFileChannelImpl result.setContext(writeTask); // initiate I/O - if (Iocp.supportsThreadAgnosticIo()) { - writeTask.run(); - } else { - Invoker.invokeOnThreadInThreadPool(this, writeTask); - } + writeTask.run(); return result; } diff --git a/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java b/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java index 9d5945364b9..8a735547ff8 100644 --- a/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java +++ b/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java @@ -342,11 +342,7 @@ class WindowsAsynchronousServerSocketChannelImpl throw new AcceptPendingException(); // initiate I/O - if (Iocp.supportsThreadAgnosticIo()) { - task.run(); - } else { - Invoker.invokeOnThreadInThreadPool(this, task); - } + task.run(); return result; } diff --git a/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java b/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java index 3e96279de41..c12575251ca 100644 --- a/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java +++ b/jdk/src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java @@ -378,11 +378,7 @@ class WindowsAsynchronousSocketChannelImpl result.setContext(task); // initiate I/O - if (Iocp.supportsThreadAgnosticIo()) { - task.run(); - } else { - Invoker.invokeOnThreadInThreadPool(this, task); - } + task.run(); return result; }