提交 5d53bb0d 编写于 作者: R redestad

8216995: Clean up JFR command line processing

Reviewed-by: gziemski, mgronlun
上级 94b15d43
/* /*
* 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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -42,32 +42,24 @@ ...@@ -42,32 +42,24 @@
#include "jfr/writers/jfrJavaEventWriter.hpp" #include "jfr/writers/jfrJavaEventWriter.hpp"
#include "memory/resourceArea.hpp" #include "memory/resourceArea.hpp"
#include "runtime/handles.inline.hpp" #include "runtime/handles.inline.hpp"
#include "runtime/globals.hpp" #include "runtime/globals_extension.hpp"
#include "utilities/growableArray.hpp" #include "utilities/growableArray.hpp"
bool JfrRecorder::_shutting_down = false; 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() { bool JfrRecorder::is_disabled() {
return is_disabled_on_command_line(); // True if -XX:-FlightRecorder has been explicitly set on the
} // command line
return FLAG_IS_CMDLINE(FlightRecorder) ? !FlightRecorder : false;
static bool set_flight_recorder_flag(bool flag_value) {
CommandLineFlags::boolAtPut((char*)"FlightRecorder", &flag_value, Flag::MANAGEMENT);
return FlightRecorder;
} }
static bool _enabled = false; static bool _enabled = false;
static bool enable() { static bool enable() {
assert(!_enabled, "invariant"); assert(!_enabled, "invariant");
_enabled = set_flight_recorder_flag(true); FLAG_SET_MGMT(bool, FlightRecorder, true);
_enabled = FlightRecorder;
assert(_enabled, "invariant");
return _enabled; return _enabled;
} }
......
...@@ -191,6 +191,7 @@ typedef enum { ...@@ -191,6 +191,7 @@ typedef enum {
#define FLAG_SET_CMDLINE(type, name, value) (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value), Flag::COMMAND_LINE)) #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_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 // Can't put the following in CommandLineFlags because
// of a circular dependency on the enum definition. // of a circular dependency on the enum definition.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册