Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: base/threading/sequenced_worker_pool.cc

Issue 1115223003: base: Remove more use of MessageLoopProxy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix nits. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/threading/sequenced_worker_pool.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/threading/sequenced_worker_pool.h" 5 #include "base/threading/sequenced_worker_pool.h"
6 6
7 #include <list> 7 #include <list>
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/atomic_sequence_num.h" 13 #include "base/atomic_sequence_num.h"
14 #include "base/callback.h" 14 #include "base/callback.h"
15 #include "base/compiler_specific.h" 15 #include "base/compiler_specific.h"
16 #include "base/critical_closure.h" 16 #include "base/critical_closure.h"
17 #include "base/lazy_instance.h" 17 #include "base/lazy_instance.h"
18 #include "base/logging.h" 18 #include "base/logging.h"
19 #include "base/memory/linked_ptr.h" 19 #include "base/memory/linked_ptr.h"
20 #include "base/message_loop/message_loop_proxy.h"
21 #include "base/stl_util.h" 20 #include "base/stl_util.h"
22 #include "base/strings/stringprintf.h" 21 #include "base/strings/stringprintf.h"
23 #include "base/synchronization/condition_variable.h" 22 #include "base/synchronization/condition_variable.h"
24 #include "base/synchronization/lock.h" 23 #include "base/synchronization/lock.h"
24 #include "base/thread_task_runner_handle.h"
25 #include "base/threading/platform_thread.h" 25 #include "base/threading/platform_thread.h"
26 #include "base/threading/simple_thread.h" 26 #include "base/threading/simple_thread.h"
27 #include "base/threading/thread_local.h" 27 #include "base/threading/thread_local.h"
28 #include "base/threading/thread_restrictions.h" 28 #include "base/threading/thread_restrictions.h"
29 #include "base/time/time.h" 29 #include "base/time/time.h"
30 #include "base/trace_event/trace_event.h" 30 #include "base/trace_event/trace_event.h"
31 #include "base/tracked_objects.h" 31 #include "base/tracked_objects.h"
32 32
33 #if defined(OS_MACOSX) 33 #if defined(OS_MACOSX)
34 #include "base/mac/scoped_nsautorelease_pool.h" 34 #include "base/mac/scoped_nsautorelease_pool.h"
(...skipping 1115 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 // Don't construct lazy instance on check. 1150 // Don't construct lazy instance on check.
1151 if (g_lazy_tls_ptr == NULL) 1151 if (g_lazy_tls_ptr == NULL)
1152 return SequenceToken(); 1152 return SequenceToken();
1153 1153
1154 SequencedWorkerPool::SequenceToken* token = g_lazy_tls_ptr.Get().Get(); 1154 SequencedWorkerPool::SequenceToken* token = g_lazy_tls_ptr.Get().Get();
1155 if (!token) 1155 if (!token)
1156 return SequenceToken(); 1156 return SequenceToken();
1157 return *token; 1157 return *token;
1158 } 1158 }
1159 1159
1160 SequencedWorkerPool::SequencedWorkerPool( 1160 SequencedWorkerPool::SequencedWorkerPool(size_t max_threads,
1161 size_t max_threads, 1161 const std::string& thread_name_prefix)
1162 const std::string& thread_name_prefix) 1162 : constructor_task_runner_(ThreadTaskRunnerHandle::Get()),
1163 : constructor_message_loop_(MessageLoopProxy::current()),
1164 inner_(new Inner(this, max_threads, thread_name_prefix, NULL)) { 1163 inner_(new Inner(this, max_threads, thread_name_prefix, NULL)) {
1165 } 1164 }
1166 1165
1167 SequencedWorkerPool::SequencedWorkerPool( 1166 SequencedWorkerPool::SequencedWorkerPool(size_t max_threads,
1168 size_t max_threads, 1167 const std::string& thread_name_prefix,
1169 const std::string& thread_name_prefix, 1168 TestingObserver* observer)
1170 TestingObserver* observer) 1169 : constructor_task_runner_(ThreadTaskRunnerHandle::Get()),
1171 : constructor_message_loop_(MessageLoopProxy::current()),
1172 inner_(new Inner(this, max_threads, thread_name_prefix, observer)) { 1170 inner_(new Inner(this, max_threads, thread_name_prefix, observer)) {
1173 } 1171 }
1174 1172
1175 SequencedWorkerPool::~SequencedWorkerPool() {} 1173 SequencedWorkerPool::~SequencedWorkerPool() {}
1176 1174
1177 void SequencedWorkerPool::OnDestruct() const { 1175 void SequencedWorkerPool::OnDestruct() const {
1178 DCHECK(constructor_message_loop_.get());
1179 // Avoid deleting ourselves on a worker thread (which would 1176 // Avoid deleting ourselves on a worker thread (which would
1180 // deadlock). 1177 // deadlock).
1181 if (RunsTasksOnCurrentThread()) { 1178 if (RunsTasksOnCurrentThread()) {
1182 constructor_message_loop_->DeleteSoon(FROM_HERE, this); 1179 constructor_task_runner_->DeleteSoon(FROM_HERE, this);
1183 } else { 1180 } else {
1184 delete this; 1181 delete this;
1185 } 1182 }
1186 } 1183 }
1187 1184
1188 SequencedWorkerPool::SequenceToken SequencedWorkerPool::GetSequenceToken() { 1185 SequencedWorkerPool::SequenceToken SequencedWorkerPool::GetSequenceToken() {
1189 return inner_->GetSequenceToken(); 1186 return inner_->GetSequenceToken();
1190 } 1187 }
1191 1188
1192 SequencedWorkerPool::SequenceToken SequencedWorkerPool::GetNamedSequenceToken( 1189 SequencedWorkerPool::SequenceToken SequencedWorkerPool::GetNamedSequenceToken(
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1292 1289
1293 void SequencedWorkerPool::FlushForTesting() { 1290 void SequencedWorkerPool::FlushForTesting() {
1294 inner_->CleanupForTesting(); 1291 inner_->CleanupForTesting();
1295 } 1292 }
1296 1293
1297 void SequencedWorkerPool::SignalHasWorkForTesting() { 1294 void SequencedWorkerPool::SignalHasWorkForTesting() {
1298 inner_->SignalHasWorkForTesting(); 1295 inner_->SignalHasWorkForTesting();
1299 } 1296 }
1300 1297
1301 void SequencedWorkerPool::Shutdown(int max_new_blocking_tasks_after_shutdown) { 1298 void SequencedWorkerPool::Shutdown(int max_new_blocking_tasks_after_shutdown) {
1302 DCHECK(constructor_message_loop_->BelongsToCurrentThread()); 1299 DCHECK(constructor_task_runner_->BelongsToCurrentThread());
1303 inner_->Shutdown(max_new_blocking_tasks_after_shutdown); 1300 inner_->Shutdown(max_new_blocking_tasks_after_shutdown);
1304 } 1301 }
1305 1302
1306 bool SequencedWorkerPool::IsShutdownInProgress() { 1303 bool SequencedWorkerPool::IsShutdownInProgress() {
1307 return inner_->IsShutdownInProgress(); 1304 return inner_->IsShutdownInProgress();
1308 } 1305 }
1309 1306
1310 } // namespace base 1307 } // namespace base
OLDNEW
« no previous file with comments | « base/threading/sequenced_worker_pool.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698