src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/InitTimer.java
Index Unified diffs Context diffs Sdiffs Frames Patch New Old Previous File Next File
*** old/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/InitTimer.java	Thu Mar 28 11:23:36 2019
--- new/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/InitTimer.java	Thu Mar 28 11:23:35 2019

*** 1,7 **** --- 1,7 ---- /* ! * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. ! * Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 22,31 **** --- 22,33 ---- */ package jdk.vm.ci.common; import java.util.concurrent.atomic.AtomicInteger; + import jdk.vm.ci.services.Services; + /** * A facility for timing a step in the runtime initialization sequence. This is independent from all * other JVMCI code so as to not perturb the initialization sequence. It is enabled by setting the * {@code "jvmci.inittimer"} system property to {@code "true"}. */
*** 56,80 **** --- 58,93 ---- initializingThread = null; } } public static InitTimer timer(String name) { ! return ENABLED ? new InitTimer(name) : null; ! return isEnabled() ? new InitTimer(name) : null; } public static InitTimer timer(String name, Object suffix) { ! return ENABLED ? new InitTimer(name + suffix) : null; ! return isEnabled() ? new InitTimer(name + suffix) : null; } /** ! * Specifies if initialization timing is enabled. Note: This property cannot use ! * Determines if initialization timing is enabled. Note: This property cannot use * {@code HotSpotJVMCIRuntime.Option} since that class is not visible from this package. */ ! private static final boolean ENABLED = Boolean.getBoolean("jvmci.InitTimer"); ! private static boolean isEnabled() { + if (enabledPropertyValue == null) { + enabledPropertyValue = Boolean.parseBoolean(Services.getSavedProperty("jvmci.InitTimer")); + nesting = new AtomicInteger(); + } + return enabledPropertyValue; + } + + /** + * Cache for value of {@code jvmci.InitTimer} system property. + */ + @NativeImageReinitialize private static Boolean enabledPropertyValue; ! public static final AtomicInteger nesting = ENABLED ? new AtomicInteger() : null; ! public static final String SPACES = " "; ! private static AtomicInteger nesting; ! private static final String SPACES = " "; /** * Used to assert the invariant that all related initialization happens on the same thread. */ static Thread initializingThread;

src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/InitTimer.java
Index Unified diffs Context diffs Sdiffs Frames Patch New Old Previous File Next File