Skip to content

Commit

Permalink
worker: fix crash when a worker joins after exit
Browse files Browse the repository at this point in the history
If a worker has not already joined before running to completion
it will join in a SetImmediateThreadsafe which could occur after
the worker has already ended by other means. Mutating a JS object
at that point would fail because the isolate is already disposed.

PR-URL: #56191
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
  • Loading branch information
Qard authored and targos committed Dec 13, 2024
1 parent b0ebd23 commit 8325fa5
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/node_worker.cc
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,9 @@ void Worker::JoinThread() {

env()->remove_sub_worker_context(this);

// Join may happen after the worker exits and disposes the isolate
if (!env()->can_call_into_js()) return;

{
HandleScope handle_scope(env()->isolate());
Context::Scope context_scope(env()->context());
Expand Down

0 comments on commit 8325fa5

Please sign in to comment.