Chromium Code Reviews| Index: base/threading/sequenced_worker_pool.cc |
| diff --git a/base/threading/sequenced_worker_pool.cc b/base/threading/sequenced_worker_pool.cc |
| index 6f4a248aaf6cd2a0492f45c3647258f05c20fc31..3f484ebd727203901e0691fd02c3490823ae53fa 100644 |
| --- a/base/threading/sequenced_worker_pool.cc |
| +++ b/base/threading/sequenced_worker_pool.cc |
| @@ -17,11 +17,11 @@ |
| #include "base/lazy_instance.h" |
| #include "base/logging.h" |
| #include "base/memory/linked_ptr.h" |
| -#include "base/message_loop/message_loop_proxy.h" |
| #include "base/stl_util.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/synchronization/condition_variable.h" |
| #include "base/synchronization/lock.h" |
| +#include "base/thread_task_runner_handle.h" |
| #include "base/threading/platform_thread.h" |
| #include "base/threading/simple_thread.h" |
| #include "base/threading/thread_local.h" |
| @@ -1158,29 +1158,29 @@ SequencedWorkerPool::GetSequenceTokenForCurrentThread() { |
| return *token; |
| } |
| -SequencedWorkerPool::SequencedWorkerPool( |
| - size_t max_threads, |
| - const std::string& thread_name_prefix) |
| - : constructor_message_loop_(MessageLoopProxy::current()), |
| +// Note: the task runner is unset when SequencedWorkerPool is constructed |
|
danakj
2015/04/21 20:16:31
Uhm.. I'm not sure what this comment means. Can yo
Sami
2015/04/23 17:48:25
Oh, sorry, accidentally left this in since I initi
|
| +// between unit tests after MessageLoop destruction. |
| +SequencedWorkerPool::SequencedWorkerPool(size_t max_threads, |
| + const std::string& thread_name_prefix) |
| + : constructor_task_runner_(ThreadTaskRunnerHandle::Get()), |
| inner_(new Inner(this, max_threads, thread_name_prefix, NULL)) { |
| } |
| -SequencedWorkerPool::SequencedWorkerPool( |
| - size_t max_threads, |
| - const std::string& thread_name_prefix, |
| - TestingObserver* observer) |
| - : constructor_message_loop_(MessageLoopProxy::current()), |
| +SequencedWorkerPool::SequencedWorkerPool(size_t max_threads, |
| + const std::string& thread_name_prefix, |
| + TestingObserver* observer) |
| + : constructor_task_runner_(ThreadTaskRunnerHandle::Get()), |
| inner_(new Inner(this, max_threads, thread_name_prefix, observer)) { |
| } |
| SequencedWorkerPool::~SequencedWorkerPool() {} |
| void SequencedWorkerPool::OnDestruct() const { |
| - DCHECK(constructor_message_loop_.get()); |
| + DCHECK(constructor_task_runner_.get()); |
|
danakj
2015/04/21 20:16:31
nit: no .get()
Sami
2015/04/23 17:48:25
Done.
|
| // Avoid deleting ourselves on a worker thread (which would |
| // deadlock). |
| if (RunsTasksOnCurrentThread()) { |
| - constructor_message_loop_->DeleteSoon(FROM_HERE, this); |
| + constructor_task_runner_->DeleteSoon(FROM_HERE, this); |
| } else { |
| delete this; |
| } |
| @@ -1300,7 +1300,7 @@ void SequencedWorkerPool::SignalHasWorkForTesting() { |
| } |
| void SequencedWorkerPool::Shutdown(int max_new_blocking_tasks_after_shutdown) { |
| - DCHECK(constructor_message_loop_->BelongsToCurrentThread()); |
| + DCHECK(constructor_task_runner_->BelongsToCurrentThread()); |
| inner_->Shutdown(max_new_blocking_tasks_after_shutdown); |
| } |