File tree 4 files changed +3
-9
lines changed
4 files changed +3
-9
lines changed Original file line number Diff line number Diff line change @@ -280,7 +280,6 @@ class NODE_EXTERN MultiIsolatePlatform : public v8::Platform {
280
280
281
281
// This function may only be called once per `Isolate`, and discard any
282
282
// pending delayed tasks scheduled for that isolate.
283
- // This needs to be called right before calling `Isolate::Dispose()`.
284
283
virtual void UnregisterIsolate (v8::Isolate* isolate) = 0;
285
284
286
285
// The platform should call the passed function once all state associated
Original file line number Diff line number Diff line change @@ -99,8 +99,8 @@ NodeMainInstance::~NodeMainInstance() {
99
99
if (!owns_isolate_) {
100
100
return ;
101
101
}
102
- platform_->UnregisterIsolate (isolate_);
103
102
isolate_->Dispose ();
103
+ platform_->UnregisterIsolate (isolate_);
104
104
}
105
105
106
106
int NodeMainInstance::Run () {
Original file line number Diff line number Diff line change @@ -192,13 +192,8 @@ class WorkerThreadData {
192
192
*static_cast <bool *>(data) = true ;
193
193
}, &platform_finished);
194
194
195
- // The order of these calls is important; if the Isolate is first disposed
196
- // and then unregistered, there is a race condition window in which no
197
- // new Isolate at the same address can successfully be registered with
198
- // the platform.
199
- // (Refs: https://github.com/nodejs/node/issues/30846)
200
- w_->platform_ ->UnregisterIsolate (isolate);
201
195
isolate->Dispose ();
196
+ w_->platform_ ->UnregisterIsolate (isolate);
202
197
203
198
// Wait until the platform has cleaned up all relevant resources.
204
199
while (!platform_finished)
Original file line number Diff line number Diff line change @@ -106,9 +106,9 @@ class NodeTestFixture : public ::testing::Test {
106
106
107
107
void TearDown () override {
108
108
isolate_->Exit ();
109
+ isolate_->Dispose ();
109
110
platform->DrainTasks (isolate_);
110
111
platform->UnregisterIsolate (isolate_);
111
- isolate_->Dispose ();
112
112
isolate_ = nullptr ;
113
113
}
114
114
};
You can’t perform that action at this time.
0 commit comments