Index: components/scheduler/child/webthread_impl_for_worker_scheduler.cc |
diff --git a/components/scheduler/child/webthread_impl_for_worker_scheduler.cc b/components/scheduler/child/webthread_impl_for_worker_scheduler.cc |
index c293faae69d38d46e577a76fc34758616a669aea..4d97b2fb6dd25748b1e51d2095f4ba99a2460934 100644 |
--- a/components/scheduler/child/webthread_impl_for_worker_scheduler.cc |
+++ b/components/scheduler/child/webthread_impl_for_worker_scheduler.cc |
@@ -27,9 +27,10 @@ WebThreadImplForWorkerScheduler::WebThreadImplForWorkerScheduler( |
WebThreadImplForWorkerScheduler::~WebThreadImplForWorkerScheduler() { |
base::WaitableEvent completion(false, false); |
- // We need to post the shutdown task on the scheduler's task queue or tasks |
- // posted on the worker scheduler may not get run when the thread is deleted. |
- TaskRunner()->PostTask( |
+ // We need to post the shutdown task on the scheduler's shutdown task queue or |
+ // other (shutdown) tasks posted on the worker scheduler may not get run when |
+ // the thread is deleted. |
+ worker_scheduler_->ShutdownTaskRunner()->PostTask( |
FROM_HERE, base::Bind(&WebThreadImplForWorkerScheduler::ShutDownOnThread, |
base::Unretained(this), &completion)); |
completion.Wait(); |
@@ -44,9 +45,11 @@ void WebThreadImplForWorkerScheduler::InitOnThread( |
task_runner_ = worker_scheduler_->DefaultTaskRunner(); |
idle_task_runner_ = worker_scheduler_->IdleTaskRunner(); |
web_scheduler_.reset(new WebSchedulerImpl( |
- worker_scheduler_.get(), worker_scheduler_->IdleTaskRunner(), |
+ worker_scheduler_.get(), |
+ worker_scheduler_->IdleTaskRunner(), |
worker_scheduler_->DefaultTaskRunner(), |
- worker_scheduler_->DefaultTaskRunner())); |
+ worker_scheduler_->DefaultTaskRunner(), |
+ worker_scheduler_->ShutdownTaskRunner())); |
completion->Signal(); |
} |