RFR [9]: 8034174 Remove use of JVM_* functions from java.net code
Alan Bateman
Alan.Bateman at oracle.com
Sat Feb 22 01:33:18 PST 2014
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.
More information about the net-dev
mailing list