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

Side by Side Diff: chrome/service/service_process.cc

Issue 2794423002: Initialize TaskScheduler with InitParams in service_process.cc. (Closed)
Patch Set: Created 3 years, 8 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 | « no previous file | 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 "chrome/service/service_process.h" 5 #include "chrome/service/service_process.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 io_thread_.reset(new ServiceIOThread("ServiceProcess_IO")); 156 io_thread_.reset(new ServiceIOThread("ServiceProcess_IO"));
157 file_thread_.reset(new base::Thread("ServiceProcess_File")); 157 file_thread_.reset(new base::Thread("ServiceProcess_File"));
158 if (!io_thread_->StartWithOptions(options) || 158 if (!io_thread_->StartWithOptions(options) ||
159 !file_thread_->StartWithOptions(options)) { 159 !file_thread_->StartWithOptions(options)) {
160 NOTREACHED(); 160 NOTREACHED();
161 Teardown(); 161 Teardown();
162 return false; 162 return false;
163 } 163 }
164 164
165 // Initialize TaskScheduler and redirect SequencedWorkerPool tasks to it. 165 // Initialize TaskScheduler and redirect SequencedWorkerPool tasks to it.
166 constexpr int kMaxTaskSchedulerThreads = 3; 166 using StandbyThreadPolicy =
167 std::vector<base::SchedulerWorkerPoolParams> worker_pool_params_vector; 167 base::SchedulerWorkerPoolParams::StandbyThreadPolicy;
168 worker_pool_params_vector.emplace_back( 168 constexpr int kMaxBackgroundThreads = 1;
169 "CloudPrintServiceProcess", base::ThreadPriority::NORMAL, 169 constexpr int kMaxBackgroundBlockingThreads = 1;
170 base::SchedulerWorkerPoolParams::StandbyThreadPolicy::LAZY, 170 constexpr int kMaxForegroundThreads = 3;
171 kMaxTaskSchedulerThreads, base::TimeDelta::FromSeconds(30), 171 constexpr int kMaxForegroundBlockingThreads = 3;
172 base::SchedulerBackwardCompatibility::INIT_COM_STA); 172 constexpr base::TimeDelta kSuggestedReclaimTime =
173 base::TimeDelta::FromSeconds(30);
174
173 base::TaskScheduler::CreateAndSetDefaultTaskScheduler( 175 base::TaskScheduler::CreateAndSetDefaultTaskScheduler(
174 worker_pool_params_vector, 176 "CloudPrintServiceProcess",
175 base::Bind([](const base::TaskTraits&) -> size_t { return 0; })); 177 {{StandbyThreadPolicy::LAZY, kMaxBackgroundThreads,
178 kSuggestedReclaimTime},
179 {StandbyThreadPolicy::LAZY, kMaxBackgroundBlockingThreads,
180 kSuggestedReclaimTime},
181 {StandbyThreadPolicy::LAZY, kMaxForegroundThreads,
182 kSuggestedReclaimTime},
183 {StandbyThreadPolicy::LAZY, kMaxForegroundBlockingThreads,
184 kSuggestedReclaimTime,
185 base::SchedulerBackwardCompatibility::INIT_COM_STA}});
186
176 base::SequencedWorkerPool::EnableWithRedirectionToTaskSchedulerForProcess(); 187 base::SequencedWorkerPool::EnableWithRedirectionToTaskSchedulerForProcess();
177 188
189 // Since SequencedWorkerPool is redirected to TaskScheduler, the value of
190 // |kMaxBlockingPoolThreads| is ignored.
191 constexpr int kMaxBlockingPoolThreads = 3;
178 blocking_pool_ = 192 blocking_pool_ =
179 new base::SequencedWorkerPool(kMaxTaskSchedulerThreads, "ServiceBlocking", 193 new base::SequencedWorkerPool(kMaxBlockingPoolThreads, "ServiceBlocking",
180 base::TaskPriority::USER_VISIBLE); 194 base::TaskPriority::USER_VISIBLE);
181 195
182 // Initialize Mojo early so things can use it. 196 // Initialize Mojo early so things can use it.
183 mojo::edk::Init(); 197 mojo::edk::Init();
184 mojo_ipc_support_.reset(new mojo::edk::ScopedIPCSupport( 198 mojo_ipc_support_.reset(new mojo::edk::ScopedIPCSupport(
185 io_thread_->task_runner(), 199 io_thread_->task_runner(),
186 mojo::edk::ScopedIPCSupport::ShutdownPolicy::FAST)); 200 mojo::edk::ScopedIPCSupport::ShutdownPolicy::FAST));
187 201
188 request_context_getter_ = new ServiceURLRequestContextGetter(); 202 request_context_getter_ = new ServiceURLRequestContextGetter();
189 203
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 } else { 449 } else {
436 Shutdown(); 450 Shutdown();
437 } 451 }
438 } 452 }
439 } 453 }
440 454
441 ServiceProcess::~ServiceProcess() { 455 ServiceProcess::~ServiceProcess() {
442 Teardown(); 456 Teardown();
443 g_service_process = NULL; 457 g_service_process = NULL;
444 } 458 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698