RFR JDK-8185582, Update Zip implementation to use Cleaner, not finalizers

Roger Riggs Roger.Riggs at Oracle.com
Wed Nov 1 14:31:46 UTC 2017


Hi Peter,

The Supplier/Consumer allocator/deallocator version is useful and 
interesting encapsulation.

We should be able to do better than exposing raw native pointers for 
other resources.
They should have better more complete encapsulation including their cleanup.
For example, the recent work on FileDescriptor.
The current state with direct memory pointers floating freely is quite 
sensitive.

I'm hopeful that Panama will support that direction.

In CleanerImp:322, is there a JMM issue with the escape of the reference 
to PhantomCleanableResource
to the cleaner thread before the constructor has finished and published 
the instance?
True, the constructor holds this until the very end of the method but 
what makes sure
the new valuewritten to the resource field will be read by the cleanable 
thread?

Thanks, Roger


On 10/31/2017 11:17 PM, mandy chung wrote:
>
>
> On 10/31/17 4:07 PM, Peter Levart wrote:
>> Hi Mandy, Sherman, Roger,
>>
>> On 10/31/17 00:25, mandy chung wrote:
>>>
>> I played a little with an idea of how such additional Cleaner API 
>> might look like. Here's what I came up with, together with how this 
>> would apply to ZipFile/Inflater/Deflater:
>>
>> http://cr.openjdk.java.net/~plevart/jdk10-dev/8185582_ZIP.cleaner/webrev.02/
>>
>> So, what do you think of this new Cleaner API extension?
>
> This serves as a good starting point.  I converted the 
> ClassLoader.NativeLibrary to use it:
> http://cr.openjdk.java.net/~mchung/jdk10/webrevs/8164512/webrev-cleanable/
>
> Looks reasonably well and probably some other improvement I could do.  
> I use createResource rather than createLongResource which is 
> specialized for an address. We should check out panama how this plays out.
>
> I think it would be useful to iterate on several more use cases and it 
> would be better to separate this RFE from JDK-8185582 so that we can 
> explore with its own pace.
>
> Mandy



More information about the core-libs-dev mailing list