----- Mail original ----- > De: "Roger Riggs" <roger.ri...@oracle.com> > À: core-libs-dev@openjdk.java.net > Envoyé: Lundi 8 Mai 2017 17:45:25 > Objet: Re: Accessing UNIX FileDescriptor id without reflection
> Hi, > > I would be very cautious about giving out fds for arbitrary FileDescriptors. > With concurrency and threading, how do you make sure that it does not > not get closed > and someone's code still has the fd and uses it later? Or worse yet, > the fd gets re-used > and then it is possible to operate on the wrong file. > Quite a bit of implementation code assumes it has complete control over > the lifecycle of > the FileDescriptor. Exposing the raw FD breaks the encapsulation. > > As Rémi suggests, passing the FileDescriptor to native will at least > maintain the current > encapsulation. s/Rémi/Peter Peter is right, i'm wrong :) > > Roger Rémi > > > On 5/8/2017 10:14 AM, Remi Forax wrote: >> I agree that a method getFd should be great, we will need this kind of value >> if >> we want to use Panama. >> >> Did you try to serializing the FileDescriptor in memory and extract the int >> corresponding to the file descriptor ? >> >> cheers, >> Rémi >> >> ----- Mail original ----- >>> De: "Enrico Olivelli" <eolive...@gmail.com> >>> À: core-libs-dev@openjdk.java.net >>> Envoyé: Lundi 8 Mai 2017 15:16:24 >>> Objet: Accessing UNIX FileDescriptor id without reflection >>> Hi, >>> I am trying to port a project (Apache BookKeeper) to Java9, actually >>> this code uses reflection in order to access the 'fd' field of the >>> FileDescriptor class. >>> >>> We have to access that ID in order to call low level native functions >>> >>> See >>> https://github.com/apache/bookkeeper/blob/master/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/NativeIO.java >>> # getSysFileDescriptor >>> >>> Is there any way to access the FD handle without using reflection ? >>> If not, is it possibile to enhance the FileDescriptor API in order to >>> given access to the internal "fd" field ? >>> >>> Thank you >>> > >> Enrico Olivelli