File tree Expand file tree Collapse file tree 2 files changed +4
-6
lines changed
test/node-api/test_worker_terminate_finalization Expand file tree Collapse file tree 2 files changed +4
-6
lines changed Original file line number Diff line number Diff line change @@ -228,9 +228,10 @@ class RefBase : protected Finalizer, RefTracker {
228
228
// from one of Unwrap or napi_delete_reference.
229
229
//
230
230
// When it is called from Unwrap or napi_delete_reference we only
231
- // want to do the delete if the finalizer has already run or
232
- // cannot have been queued to run (ie the reference count is > 0),
231
+ // want to do the delete if there is no finalizer or the finalizer has already
232
+ // run or cannot have been queued to run (i.e. the reference count is > 0),
233
233
// otherwise we may crash when the finalizer does run.
234
+ //
234
235
// If the finalizer may have been queued and has not already run
235
236
// delay the delete until the finalizer runs by not doing the delete
236
237
// and setting _delete_self to true so that the finalizer will
@@ -242,6 +243,7 @@ class RefBase : protected Finalizer, RefTracker {
242
243
static inline void Delete (RefBase* reference) {
243
244
reference->Unlink ();
244
245
if ((reference->RefCount () != 0 ) ||
246
+ (reference->_finalize_callback == nullptr ) ||
245
247
(reference->_delete_self ) ||
246
248
(reference->_finalize_ran )) {
247
249
delete reference;
Original file line number Diff line number Diff line change 1
1
'use strict' ;
2
2
const common = require ( '../../common' ) ;
3
3
4
- // TODO(addaleax): Run this test once it stops failing under ASAN/valgrind.
5
- // Refs: https://github.com/nodejs/node/issues/34731
6
- common . skip ( 'Reference management in N-API leaks memory' ) ;
7
-
8
4
const { Worker, isMainThread } = require ( 'worker_threads' ) ;
9
5
10
6
if ( isMainThread ) {
You can’t perform that action at this time.
0 commit comments