Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Fomichev <fanatid@ya.ru>2019-09-13 17:25:31 +0300
committerAnna Henningsen <anna@addaleax.net>2020-02-04 19:41:44 +0300
commit018c3e8949e925efc8077801d44c2b2feb974750 (patch)
treeef8e6e43c89df503aff29546daa75a8455f9bf6f /src/node_perf.cc
parent60de60a0ce21378c80353489759dc70f05156cc7 (diff)
perf_hooks: add property flags to GCPerformanceEntry
PR-URL: https://github.com/nodejs/node/pull/29547 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Diffstat (limited to 'src/node_perf.cc')
-rw-r--r--src/node_perf.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/node_perf.cc b/src/node_perf.cc
index 0536c39f6c7..68b015f33ed 100644
--- a/src/node_perf.cc
+++ b/src/node_perf.cc
@@ -244,6 +244,10 @@ void PerformanceGCCallback(Environment* env,
env->kind_string(),
Integer::New(env->isolate(), entry->gckind()),
attr).Check();
+ obj->DefineOwnProperty(context,
+ env->flags_string(),
+ Integer::New(env->isolate(), entry->gcflags()),
+ attr).Check();
PerformanceEntry::Notify(env, entry->kind(), obj);
}
}
@@ -270,6 +274,7 @@ void MarkGarbageCollectionEnd(Isolate* isolate,
auto entry = std::make_unique<GCPerformanceEntry>(
env,
static_cast<PerformanceGCKind>(type),
+ static_cast<PerformanceGCFlags>(flags),
state->performance_last_gc_start_mark,
PERFORMANCE_NOW());
env->SetUnrefImmediate([entry = std::move(entry)](Environment* env) mutable {
@@ -587,6 +592,21 @@ void Initialize(Local<Object> target,
NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_INCREMENTAL);
NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_WEAKCB);
+ NODE_DEFINE_CONSTANT(
+ constants, NODE_PERFORMANCE_GC_FLAGS_NO);
+ NODE_DEFINE_CONSTANT(
+ constants, NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED);
+ NODE_DEFINE_CONSTANT(
+ constants, NODE_PERFORMANCE_GC_FLAGS_FORCED);
+ NODE_DEFINE_CONSTANT(
+ constants, NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING);
+ NODE_DEFINE_CONSTANT(
+ constants, NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE);
+ NODE_DEFINE_CONSTANT(
+ constants, NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY);
+ NODE_DEFINE_CONSTANT(
+ constants, NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE);
+
#define V(name, _) \
NODE_DEFINE_HIDDEN_CONSTANT(constants, NODE_PERFORMANCE_ENTRY_TYPE_##name);
NODE_PERFORMANCE_ENTRY_TYPES(V)