Skip to content

Commit 790b591

Browse files
committed
Replace recursion with while-loop swap
1 parent b3d5368 commit 790b591

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/node_api.cc

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,13 @@ void node_napi_env__::DrainFinalizerQueue() {
7070
// Process all pending finalizers. If new finalizers are added during
7171
// Finalize() calls,
7272
// they are handled in subsequent recursive calls.
73-
decltype(pending_finalizers) current_finalizers;
74-
current_finalizers.swap(pending_finalizers);
73+
while (!pending_finalizers.empty()) {
74+
decltype(pending_finalizers) current_finalizers;
75+
current_finalizers.swap(pending_finalizers);
7576

76-
for (auto* ref_tracker : current_finalizers) {
77-
ref_tracker->Finalize();
78-
}
79-
80-
if (!pending_finalizers.empty()) {
81-
DrainFinalizerQueue();
77+
for (auto* ref_tracker : current_finalizers) {
78+
ref_tracker->Finalize();
79+
}
8280
}
8381
}
8482

0 commit comments

Comments
 (0)