Hi Alan,

On 1/6/2016 10:32 AM, Alan Bateman wrote:


On 05/01/2016 18:24, Roger Riggs wrote:
The follow on work to adding the Cleaner is to replace uses of finalization with uses of the Cleaner. For the 'easy' cases in the java.base module, it is useful to introduce a private Cleaner for the java.base module. It is proposed to be held weakly, to allow it to terminate on a lightly loaded
system.

Webrev for Review:
http://cr.openjdk.java.net/~rriggs/webrev-cleaning-factory-8146028/
This looks okay but can't commonCleaner be final?
yes, fixed.
I prototype a version that kept a WeakReference to the Cleaner so it could terminate if not used. But it is more complex to make sure the Cleaner would be referenced *only* as long as there were pending Cleanables and depending on its use it might thrash starting a cleaner (thread) and then terminating, necessitating re-creating on the next use.



The 2nd step is using the Cleaner.
- Empty finalize methods should (I think) be removed; but since they are part of the public spec the process needs two full releases; so the proposal is to deprecate them first. (The JEP 277 necessary changes will be updated when JEP 277 semantics are finalized)
I assume some of these could just be removed - for example SocketInputStream/SocketOutputStream are package private and aren't part of the API. But maybe you mean that you don't want to touch some java.* classes?
Will remove them; its clearer.

I'll split the finalizers being removed into a separate webrev;
since they don't fit the original description as replacements.

Thanks, Roger


-Alan.

Reply via email to