Mercurial > hg > openjdk > jdk8u > hotspot
changeset 9164:d2b51a10084d
8216995: Clean up JFR command line processing
Reviewed-by: gziemski, mgronlun
author | redestad |
---|---|
date | Tue, 15 Jan 2019 21:17:35 +0100 |
parents | 8689c69d5c19 |
children | 3549c2f110d2 |
files | src/share/vm/jfr/recorder/jfrRecorder.cpp src/share/vm/runtime/globals_extension.hpp |
diffstat | 2 files changed, 9 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/jfr/recorder/jfrRecorder.cpp Wed Jan 16 13:38:19 2019 -0500 +++ b/src/share/vm/jfr/recorder/jfrRecorder.cpp Tue Jan 15 21:17:35 2019 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 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 @@ -42,32 +42,24 @@ #include "jfr/writers/jfrJavaEventWriter.hpp" #include "memory/resourceArea.hpp" #include "runtime/handles.inline.hpp" -#include "runtime/globals.hpp" +#include "runtime/globals_extension.hpp" #include "utilities/growableArray.hpp" bool JfrRecorder::_shutting_down = false; -static bool is_disabled_on_command_line() { - static const size_t length = strlen("FlightRecorder"); - static Flag* const flight_recorder_flag = Flag::find_flag("FlightRecorder", length); - assert(flight_recorder_flag != NULL, "invariant"); - return flight_recorder_flag->is_command_line() ? !FlightRecorder : false; -} - bool JfrRecorder::is_disabled() { - return is_disabled_on_command_line(); -} - -static bool set_flight_recorder_flag(bool flag_value) { - CommandLineFlags::boolAtPut((char*)"FlightRecorder", &flag_value, Flag::MANAGEMENT); - return FlightRecorder; + // True if -XX:-FlightRecorder has been explicitly set on the + // command line + return FLAG_IS_CMDLINE(FlightRecorder) ? !FlightRecorder : false; } static bool _enabled = false; static bool enable() { assert(!_enabled, "invariant"); - _enabled = set_flight_recorder_flag(true); + FLAG_SET_MGMT(bool, FlightRecorder, true); + _enabled = FlightRecorder; + assert(_enabled, "invariant"); return _enabled; }
--- a/src/share/vm/runtime/globals_extension.hpp Wed Jan 16 13:38:19 2019 -0500 +++ b/src/share/vm/runtime/globals_extension.hpp Tue Jan 15 21:17:35 2019 +0100 @@ -191,6 +191,7 @@ #define FLAG_SET_CMDLINE(type, name, value) (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value), Flag::COMMAND_LINE)) #define FLAG_SET_ERGO(type, name, value) (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value), Flag::ERGONOMIC)) +#define FLAG_SET_MGMT(type, name, value) (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name, type), (type)(value), Flag::MANAGEMENT)) // Can't put the following in CommandLineFlags because // of a circular dependency on the enum definition.