| 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();
|
| }
|
|
|
|
|