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..aec0b2eac24fc9dc3ca8f01f2ab3a446b0e9a77c 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(); |
@@ -46,7 +47,8 @@ void WebThreadImplForWorkerScheduler::InitOnThread( |
web_scheduler_.reset(new WebSchedulerImpl( |
worker_scheduler_.get(), worker_scheduler_->IdleTaskRunner(), |
worker_scheduler_->DefaultTaskRunner(), |
- worker_scheduler_->DefaultTaskRunner())); |
+ worker_scheduler_->DefaultTaskRunner(), |
+ worker_scheduler_->ShutdownTaskRunner())); |
completion->Signal(); |
} |