| Index: base/task_scheduler/scheduler_worker_pool_impl_unittest.cc
|
| diff --git a/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc b/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc
|
| index 3b9393e19abcd7e5d484da54dd9d7f826cf86f93..9983cad5c166bb1f11ff5e79d7a1c0802482812c 100644
|
| --- a/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc
|
| +++ b/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc
|
| @@ -59,6 +59,7 @@ constexpr TimeDelta kExtraTimeToWaitForDetach =
|
| TimeDelta::FromSeconds(1);
|
|
|
| using IORestriction = SchedulerWorkerPoolParams::IORestriction;
|
| +using StandbyThreadPolicy = SchedulerWorkerPoolParams::StandbyThreadPolicy;
|
|
|
| class TaskSchedulerWorkerPoolImplTest
|
| : public testing::TestWithParam<test::ExecutionMode> {
|
| @@ -84,9 +85,9 @@ class TaskSchedulerWorkerPoolImplTest
|
| delayed_task_manager_ =
|
| base::MakeUnique<DelayedTaskManager>(service_thread_.task_runner());
|
| worker_pool_ = SchedulerWorkerPoolImpl::Create(
|
| - SchedulerWorkerPoolParams("TestWorkerPool", ThreadPriority::NORMAL,
|
| - IORestriction::ALLOWED, num_workers,
|
| - suggested_reclaim_time),
|
| + SchedulerWorkerPoolParams(
|
| + "TestWorkerPool", ThreadPriority::NORMAL, IORestriction::ALLOWED,
|
| + StandbyThreadPolicy::LAZY, num_workers, suggested_reclaim_time),
|
| Bind(&TaskSchedulerWorkerPoolImplTest::ReEnqueueSequenceCallback,
|
| Unretained(this)),
|
| &task_tracker_, delayed_task_manager_.get());
|
| @@ -473,9 +474,9 @@ TEST_P(TaskSchedulerWorkerPoolImplIORestrictionTest, IORestriction) {
|
| make_scoped_refptr(new TestSimpleTaskRunner));
|
|
|
| auto worker_pool = SchedulerWorkerPoolImpl::Create(
|
| - SchedulerWorkerPoolParams("TestWorkerPoolWithParam",
|
| - ThreadPriority::NORMAL, GetParam(), 1U,
|
| - TimeDelta::Max()),
|
| + SchedulerWorkerPoolParams(
|
| + "TestWorkerPoolWithParam", ThreadPriority::NORMAL, GetParam(),
|
| + StandbyThreadPolicy::LAZY, 1U, TimeDelta::Max()),
|
| Bind(&NotReachedReEnqueueSequenceCallback), &task_tracker,
|
| &delayed_task_manager);
|
| ASSERT_TRUE(worker_pool);
|
| @@ -825,5 +826,36 @@ TEST_F(TaskSchedulerWorkerPoolHistogramTest, NumTasksBeforeDetach) {
|
| EXPECT_EQ(0, histogram->SnapshotSamples()->GetCount(10));
|
| }
|
|
|
| +TEST(TaskSchedulerWorkerPoolStandbyPolicyTest, InitLazy) {
|
| + TaskTracker task_tracker;
|
| + DelayedTaskManager delayed_task_manager(
|
| + make_scoped_refptr(new TestSimpleTaskRunner));
|
| + auto worker_pool = SchedulerWorkerPoolImpl::Create(
|
| + SchedulerWorkerPoolParams("LazyPolicyWorkerPool", ThreadPriority::NORMAL,
|
| + IORestriction::DISALLOWED,
|
| + StandbyThreadPolicy::LAZY, 8U,
|
| + TimeDelta::Max()),
|
| + Bind(&NotReachedReEnqueueSequenceCallback), &task_tracker,
|
| + &delayed_task_manager);
|
| + ASSERT_TRUE(worker_pool);
|
| + EXPECT_EQ(0U, worker_pool->NumberOfAliveWorkersForTesting());
|
| + worker_pool->JoinForTesting();
|
| +}
|
| +
|
| +TEST(TaskSchedulerWorkerPoolStandbyPolicyTest, InitOne) {
|
| + TaskTracker task_tracker;
|
| + DelayedTaskManager delayed_task_manager(
|
| + make_scoped_refptr(new TestSimpleTaskRunner));
|
| + auto worker_pool = SchedulerWorkerPoolImpl::Create(
|
| + SchedulerWorkerPoolParams("LazyPolicyWorkerPool", ThreadPriority::NORMAL,
|
| + IORestriction::DISALLOWED,
|
| + StandbyThreadPolicy::ONE, 8U, TimeDelta::Max()),
|
| + Bind(&NotReachedReEnqueueSequenceCallback), &task_tracker,
|
| + &delayed_task_manager);
|
| + ASSERT_TRUE(worker_pool);
|
| + EXPECT_EQ(1U, worker_pool->NumberOfAliveWorkersForTesting());
|
| + worker_pool->JoinForTesting();
|
| +}
|
| +
|
| } // namespace internal
|
| } // namespace base
|
|
|