Index: third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
index a0c4d830b0038274700ce939d2a12684a327e4e6..13363387953dd7545130493ec32294f3936291ad 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
+++ b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
@@ -397,9 +397,17 @@ void V8Initializer::initializeMainThread() { |
// throttled and memory usage goes up. For now we're using loading task queue |
// to prevent this. |
// TODO(altimin): Consider switching to timerTaskRunner here. |
- v8::Isolate* isolate = V8PerIsolateData::initialize( |
+ |
+ WebTaskRunner* taskRunner = |
scheduler ? scheduler->loadingTaskRunner() |
- : Platform::current()->currentThread()->getWebTaskRunner()); |
+ : Platform::current()->currentThread()->getWebTaskRunner(); |
+ std::unique_ptr<gin::IsolateHolder> isolateHolder( |
+ WTF::makeUnique<gin::IsolateHolder>( |
+ taskRunner ? taskRunner->toSingleThreadTaskRunner() : nullptr, |
+ gin::IsolateHolder::kSingleThread, |
+ isMainThread() ? gin::IsolateHolder::kDisallowAtomicsWait |
+ : gin::IsolateHolder::kAllowAtomicsWait)); |
+ v8::Isolate* isolate = V8PerIsolateData::initialize(std::move(isolateHolder)); |
initializeV8Common(isolate); |