1717namespace v8 {
1818namespace platform {
1919
20-
21- v8::Platform* CreateDefaultPlatform ( int thread_pool_size ) {
22- DefaultPlatform* platform = new DefaultPlatform ();
20+ v8::Platform* CreateDefaultPlatform ( int thread_pool_size,
21+ IdleTaskSupport idle_task_support ) {
22+ DefaultPlatform* platform = new DefaultPlatform (idle_task_support );
2323 platform->SetThreadPoolSize (thread_pool_size);
2424 platform->EnsureInitialized ();
2525 return platform;
@@ -45,8 +45,10 @@ void SetTracingController(
4545
4646const int DefaultPlatform::kMaxThreadPoolSize = 8 ;
4747
48- DefaultPlatform::DefaultPlatform ()
49- : initialized_(false ), thread_pool_size_(0 ) {}
48+ DefaultPlatform::DefaultPlatform (IdleTaskSupport idle_task_support)
49+ : initialized_(false ),
50+ thread_pool_size_ (0 ),
51+ idle_task_support_(idle_task_support) {}
5052
5153DefaultPlatform::~DefaultPlatform () {
5254 if (tracing_controller_) {
@@ -165,6 +167,7 @@ bool DefaultPlatform::PumpMessageLoop(v8::Isolate* isolate) {
165167
166168void DefaultPlatform::RunIdleTasks (v8::Isolate* isolate,
167169 double idle_time_in_seconds) {
170+ DCHECK (IdleTaskSupport::kEnabled == idle_task_support_);
168171 double deadline_in_seconds =
169172 MonotonicallyIncreasingTime () + idle_time_in_seconds;
170173 while (deadline_in_seconds > MonotonicallyIncreasingTime ()) {
@@ -208,7 +211,9 @@ void DefaultPlatform::CallIdleOnForegroundThread(Isolate* isolate,
208211 main_thread_idle_queue_[isolate].push (task);
209212}
210213
211- bool DefaultPlatform::IdleTasksEnabled (Isolate* isolate) { return true ; }
214+ bool DefaultPlatform::IdleTasksEnabled (Isolate* isolate) {
215+ return idle_task_support_ == IdleTaskSupport::kEnabled ;
216+ }
212217
213218double DefaultPlatform::MonotonicallyIncreasingTime () {
214219 return base::TimeTicks::HighResolutionNow ().ToInternalValue () /
0 commit comments