Review Request JDK-8164512: Replace ClassLoader use of finalizer with phantom reference to unload native library
peter.levart at gmail.com
Tue Oct 10 21:28:51 UTC 2017
On 10/10/17 17:00, mandy chung wrote:
>> Now that (system)nativeLibraries is a Map, is it still necessary to
>> iterate it and call lib.findEntry(name) on each NativeLibrary until
>> the one that returns a non-zero entry or would it be semantically
>> equivalent to 1st look-up the Map by the 'name' key to get the
>> correct NativeLibrary?
> The name parameter is the symbol name but not the library name. It's
> confusing and therefore I renamed NativeLibrary::find to
> NativeLibrary::findEntry. I could rename the name parameter to
> entryName to make it clearer.
Oh, I see. I haven't checked the findNative VM call-back method purpose
before. It's reasonable to try all the native libraries of a ClassLoader
when looking for a symbol that links to native method implementation.
Constructing and keeping an index of symbols for each native library on
the Java side is probably not worth since there might be lots of them in
libraries and only some of them link to native method implementations
and there's typically not many native libraries loaded.
More information about the core-libs-dev