| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/task_scheduler/task_scheduler_impl.h" | 5 #include "base/task_scheduler/task_scheduler_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 return traits.priority() == TaskPriority::BACKGROUND ? BACKGROUND_WORKER_POOL | 177 return traits.priority() == TaskPriority::BACKGROUND ? BACKGROUND_WORKER_POOL |
| 178 : FOREGROUND_WORKER_POOL; | 178 : FOREGROUND_WORKER_POOL; |
| 179 } | 179 } |
| 180 | 180 |
| 181 class TaskSchedulerImplTest | 181 class TaskSchedulerImplTest |
| 182 : public testing::TestWithParam<TraitsExecutionModePair> { | 182 : public testing::TestWithParam<TraitsExecutionModePair> { |
| 183 protected: | 183 protected: |
| 184 TaskSchedulerImplTest() = default; | 184 TaskSchedulerImplTest() = default; |
| 185 | 185 |
| 186 void SetUp() override { | 186 void SetUp() override { |
| 187 using IORestriction = SchedulerWorkerPoolParams::IORestriction; | |
| 188 using StandbyThreadPolicy = SchedulerWorkerPoolParams::StandbyThreadPolicy; | 187 using StandbyThreadPolicy = SchedulerWorkerPoolParams::StandbyThreadPolicy; |
| 189 | 188 |
| 190 std::vector<SchedulerWorkerPoolParams> params_vector; | 189 std::vector<SchedulerWorkerPoolParams> params_vector; |
| 191 | 190 |
| 192 ASSERT_EQ(BACKGROUND_WORKER_POOL, params_vector.size()); | 191 ASSERT_EQ(BACKGROUND_WORKER_POOL, params_vector.size()); |
| 193 params_vector.emplace_back("Background", ThreadPriority::BACKGROUND, | 192 params_vector.emplace_back("Background", ThreadPriority::BACKGROUND, |
| 194 IORestriction::DISALLOWED, | |
| 195 StandbyThreadPolicy::LAZY, 1U, TimeDelta::Max()); | 193 StandbyThreadPolicy::LAZY, 1U, TimeDelta::Max()); |
| 196 | 194 |
| 197 ASSERT_EQ(BACKGROUND_FILE_IO_WORKER_POOL, params_vector.size()); | 195 ASSERT_EQ(BACKGROUND_FILE_IO_WORKER_POOL, params_vector.size()); |
| 198 params_vector.emplace_back("BackgroundFileIO", ThreadPriority::BACKGROUND, | 196 params_vector.emplace_back("BackgroundFileIO", ThreadPriority::BACKGROUND, |
| 199 IORestriction::ALLOWED, | |
| 200 StandbyThreadPolicy::LAZY, 3U, TimeDelta::Max()); | 197 StandbyThreadPolicy::LAZY, 3U, TimeDelta::Max()); |
| 201 | 198 |
| 202 ASSERT_EQ(FOREGROUND_WORKER_POOL, params_vector.size()); | 199 ASSERT_EQ(FOREGROUND_WORKER_POOL, params_vector.size()); |
| 203 params_vector.emplace_back("Foreground", ThreadPriority::NORMAL, | 200 params_vector.emplace_back("Foreground", ThreadPriority::NORMAL, |
| 204 IORestriction::DISALLOWED, | |
| 205 StandbyThreadPolicy::LAZY, 4U, TimeDelta::Max()); | 201 StandbyThreadPolicy::LAZY, 4U, TimeDelta::Max()); |
| 206 | 202 |
| 207 ASSERT_EQ(FOREGROUND_FILE_IO_WORKER_POOL, params_vector.size()); | 203 ASSERT_EQ(FOREGROUND_FILE_IO_WORKER_POOL, params_vector.size()); |
| 208 params_vector.emplace_back( | 204 params_vector.emplace_back("ForegroundFileIO", ThreadPriority::NORMAL, |
| 209 "ForegroundFileIO", ThreadPriority::NORMAL, IORestriction::ALLOWED, | 205 StandbyThreadPolicy::LAZY, 12U, |
| 210 StandbyThreadPolicy::LAZY, 12U, TimeDelta::Max()); | 206 TimeDelta::Max()); |
| 211 | 207 |
| 212 scheduler_ = TaskSchedulerImpl::Create(params_vector, | 208 scheduler_ = TaskSchedulerImpl::Create(params_vector, |
| 213 Bind(&GetThreadPoolIndexForTraits)); | 209 Bind(&GetThreadPoolIndexForTraits)); |
| 214 ASSERT_TRUE(scheduler_); | 210 ASSERT_TRUE(scheduler_); |
| 215 } | 211 } |
| 216 | 212 |
| 217 void TearDown() override { scheduler_->JoinForTesting(); } | 213 void TearDown() override { scheduler_->JoinForTesting(); } |
| 218 | 214 |
| 219 std::unique_ptr<TaskSchedulerImpl> scheduler_; | 215 std::unique_ptr<TaskSchedulerImpl> scheduler_; |
| 220 | 216 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 thread->WaitForAllTasksToRun(); | 273 thread->WaitForAllTasksToRun(); |
| 278 thread->Join(); | 274 thread->Join(); |
| 279 } | 275 } |
| 280 } | 276 } |
| 281 | 277 |
| 282 // TODO(fdoray): Add tests with Sequences that move around worker pools once | 278 // TODO(fdoray): Add tests with Sequences that move around worker pools once |
| 283 // child TaskRunners are supported. | 279 // child TaskRunners are supported. |
| 284 | 280 |
| 285 } // namespace internal | 281 } // namespace internal |
| 286 } // namespace base | 282 } // namespace base |
| OLD | NEW |