Review Request: JDK-8001334 - Remove use of JVM_* functions from java.io code (original) (raw)
Alan Bateman Alan.Bateman at oracle.com
Fri Jan 25 14:53:10 UTC 2013
- Previous message: Review Request: JDK-8001334 - Remove use of JVM_* functions from java.io code
- Next message: Review Request: JDK-8001334 - Remove use of JVM_* functions from java.io code
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Dan,
I've taken a pass over this and overall this is good clean-up and something that was just not possible before jdk8 because of the need to keep -XX:+UseVMInterruptibleIO working on Solaris.
A few comments:
I don't understand why these changes require the make file changes to link io_util_md and canonicalize_md into nio.dll.
In the definition of ISNANF on Solaris it uses isnand. I'll bet the comment in globalDefinitions_xxx dates back to the original port and might not be true anymore (I'm not suggesting you change it without intensive testing, just a comment that I'll bet it is not an issue now).
"FD" is probably okay, I just wonder about how easy it might be to get a conflict.
src/solaris/native/java/io/UnixFileSystem_md.c, did you test access to "/", I just wonder if it would be better to keep the existing test.
handleClose in src/solaris/native/java/io/io_util_md.c, close is not restartable (I think we have this wrong in a few places).
handleOpen - looks like a bug where it should use "mode" instead of the 0666.
I don't think the O_CLOEXEC code is needed in handleOpen, was this copied from HotSpot?
handleAvailable - assume the file is changing, in which case this could return a negative available. I see the existing code lseeks to the end whereas you are using the size from the stat, I think that is okay, just need to properly handle the case that the file is truncated between calls.
getLastErrorString => I wonder if we should move to strerror_r (less ambiguity as to whether it is thread-safe). Probably best to use strncpy too.
src/solaris/native/java/io/io_util_md.h - minor nit, alignment of RESTARTABLE.
src/windows/native/java/io/io_util_md.h - it's not obvious to me why these need JNIEXPORT but this might be tied into my first question about the make changes.
That's all I have. I assume you will run all tests on all platforms before this is pushed.
-Alan
:
-------- Original Message -------- Subject: Review Request: JDK-8001334 - Remove use of JVM* functions from java.io code Date: Mon, 21 Jan 2013 23:25:25 -0800 From: Dan Xu <dan.xu at oracle.com> To: nio-dev <nio-dev at openjdk.java.net>
Hi, Interruptible I/O on Solaris has been highly problematicand undercut portability. And the long term plan is to remove it completely from JDK. In JDK6, the VM option, UseVMInterruptibleIO, was introduced as part of a phase-out plan to allow developers/customers to disable it. In JDK7, the default value of UseVMInterruptibleIO flag was changed to"false" to make Solaris blockingI/O operations uninterruptible by Java thread interruptsby default. The last stepof this phase-out plan is to remove the feature completely. And it is good to do it now in JDK8. In this fix, I removed all related codes in IO area by replacing JVM* functions with direct system calls. Please help review the proposed fix. Similar changes in networking area will be done via a different bug. Bug: https://jbs.oracle.com/bugs/browse/JDK-8001334 webrev: http://cr.openjdk.java.net/~dxu/8001334/webrev.00/ <http://cr.openjdk.java.net/%7Edxu/8001334/webrev.00/> Best, -Dan
- Previous message: Review Request: JDK-8001334 - Remove use of JVM_* functions from java.io code
- Next message: Review Request: JDK-8001334 - Remove use of JVM_* functions from java.io code
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]