On 22/02/2014 08:29, Chris Hegarty wrote:
Interruptible I/O on Solaris has been highly problematic and the long standing plan has
been to remove it from the JDK. In JDK6 the VM option UseVMInterruptibleIO was introduced
to allow developers/customers experiment with disabling it. In JDK7 the default value of
UseVMInterruptibleIO was changed to be "false" so that it is disabled by
default. It is now finally being removed.
This bug tracks changing the native in src/share/native/java/net and
src/solaris/native/java/net so that the system calls are used directly rather
than going through the JVM_* functions.
http://cr.openjdk.java.net/~chegar/8034174/webrev.00/webrev/
Thank for you for doing this, it's long over due.
I've taken a first pass over this and it looks good. For NET_RecvFrom
and other that take a socket address then maybe the len should be a
size_t rather than int (they may have been in the JVM_* function due to
difference in the definitions of size_t, which is no longer a concern
here I think).
One comment on the Windows changes is that it might be clearer if they
were changed to check for SOCKET_ERROR rather than -1 as that matches
the Windows Sockets documentation.
I also notice that several of the files include jvm.h and I wonder if
this is needed now.
In JNI_OnLoad then it uses GetEnv to check the JNI version and I assume
this code can just be removed.
In net_util.h the removal of JVM_* means it means "like the system
procedures", maybe it should be system calls or system functions.
-Alan.