From acc5a86efe241b52a2e0bf8c6b1ba886213cf9f0 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Tue, 22 Jan 2019 23:07:04 +0100 Subject: perf_hooks: clean up GC listeners Add Environment cleanup hooks to remove GC listeners when the `Environment` is torn down. PR-URL: https://github.com/nodejs/node/pull/25647 Reviewed-By: Joyee Cheung Reviewed-By: Richard Lau Reviewed-By: James M Snell --- src/node_perf.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/node_perf.cc') diff --git a/src/node_perf.cc b/src/node_perf.cc index 45d66ad591..b3bbc16a3e 100644 --- a/src/node_perf.cc +++ b/src/node_perf.cc @@ -296,6 +296,11 @@ inline void SetupGarbageCollectionTracking(Environment* env) { static_cast(env)); env->isolate()->AddGCEpilogueCallback(MarkGarbageCollectionEnd, static_cast(env)); + env->AddCleanupHook([](void* data) { + Environment* env = static_cast(data); + env->isolate()->RemoveGCPrologueCallback(MarkGarbageCollectionStart, data); + env->isolate()->RemoveGCEpilogueCallback(MarkGarbageCollectionEnd, data); + }, env); } // Gets the name of a function -- cgit v1.2.3