On 5/18/20 11:11 AM, Alan Bateman wrote:
On 18/05/2020 09:59, Peter Levart wrote:
:

Please elaborate. Do you have an example of such use case? Are there any existing races possible?
Everywhere that closes a file descriptor needs to coordinate the closing with threads that may be accessing that file descriptor, otherwise you risk doing I/O on file descriptors that have been recycled. This has always been problematic for the legacy java.io classes, so the concern is that increasing the window where you are using the "raw" file descriptor will make it worse.

-Alan.


Ah, that. So the concern is that the operation performed would be performed on the wrong file because the fd/handle would be recycled. So here you assume that transition from java to native code takes considerably more time than the part of GetIntField JNI API call between reading the field value and completing the call? Or is the transition to native code equipped with some sort of implicit memory barrier so that reading the filed from native code makes it more recent? If that last is the case then perhaps such memory barrier could be issued in java code too...


Regards, Peter


Reply via email to