diff --git a/deps/v8/src/handles/persistent-handles.cc b/deps/v8/src/handles/persistent-handles.cc index 1a142038a75b..a566948ec034 100644 --- a/deps/v8/src/handles/persistent-handles.cc +++ b/deps/v8/src/handles/persistent-handles.cc @@ -124,6 +124,9 @@ void PersistentHandlesList::Remove(PersistentHandles* persistent_handles) { void PersistentHandlesList::Iterate(RootVisitor* visitor, Isolate* isolate) { isolate->heap()->safepoint()->AssertActive(); + // Use the lock here because PersistentHandles could be dropped from threads + // without a LocalHeap. + base::MutexGuard guard(&persistent_handles_mutex_); for (PersistentHandles* current = persistent_handles_head_; current; current = current->next_) { current->Iterate(visitor);