RFR: JDK-8276422 Add command-line option to disable finalization
Jaikiran Pai
jpai at openjdk.java.net
Thu Nov 18 04:17:43 UTC 2021
On Thu, 18 Nov 2021 01:34:36 GMT, Stuart Marks <smarks at openjdk.org> wrote:
> Pretty much what it says. The new option controls a static member in InstanceKlass that's consulted to determine whether the finalization machinery is activated for instances when a class is loaded. A new native method is added so that this state can be queried from Java. This is used to control whether a finalizer thread is created and to disable the `System` and `Runtime::runFinalization` methods. Includes tests for the above.
src/java.base/share/classes/java/lang/ref/Finalizer.java line 195:
> 193:
> 194: static {
> 195: if (Holder.ENABLED) {
Hello Stuart,
My understanding of the the lazy `Holder` is that it's there to delay the static initialization of the code that's part of the `Holder`. In this case here, the `Holder` is being used right within the `static` block of the `Finalizer` class, that too as the first thing. In this case, is that `Holder` class necessary?
-------------
PR: https://git.openjdk.java.net/jdk/pull/6442
More information about the core-libs-dev
mailing list