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