summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/node_perf.cc5
1 files changed, 5 insertions, 0 deletions
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<void*>(env));
env->isolate()->AddGCEpilogueCallback(MarkGarbageCollectionEnd,
static_cast<void*>(env));
+ env->AddCleanupHook([](void* data) {
+ Environment* env = static_cast<Environment*>(data);
+ env->isolate()->RemoveGCPrologueCallback(MarkGarbageCollectionStart, data);
+ env->isolate()->RemoveGCEpilogueCallback(MarkGarbageCollectionEnd, data);
+ }, env);
}
// Gets the name of a function