RFR: 8263903: Use Cleaner instead of finalize to auto stop Timer thread
Kim Barrett
kbarrett at openjdk.java.net
Mon Mar 22 05:42:40 UTC 2021
On Sun, 21 Mar 2021 22:57:10 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> Please review this change to java.util.Timer, replacing the use of deprecated finalization-based cleanup with use of java.lang.ref.Cleaner.
>>
>> In addition, Timer.cancel now cancels any later execution of the the no longer relevant cleanup.
>>
>> Testing:
>> mach5 tier1
>> New AutoStop test verifies the specified cleanup behavior.
>> (There are existing tests involving Timer.cancel.)
>
> test/jdk/java/util/Timer/AutoStop.java line 47:
>
>> 45: public void run() {
>> 46: tdThread = Thread.currentThread();
>> 47: synchronized(wakeup) {
>
> tdThread should be set inside the sync block, and then doesn't need to be declared volatile
Without volatile is the while loop still okay? And the read for the join call?
-------------
PR: https://git.openjdk.java.net/jdk/pull/3106
More information about the core-libs-dev
mailing list