Chromium Code Reviews| Index: base/task_scheduler/scheduler_worker_thread_unittest.cc |
| diff --git a/base/task_scheduler/scheduler_worker_thread_unittest.cc b/base/task_scheduler/scheduler_worker_thread_unittest.cc |
| index 36fa42369fd5ef7d79be6c305860660dcb81d56d..9eee5f374388ffcafd04cfa75383eb984bf4e91c 100644 |
| --- a/base/task_scheduler/scheduler_worker_thread_unittest.cc |
| +++ b/base/task_scheduler/scheduler_worker_thread_unittest.cc |
| @@ -44,6 +44,11 @@ class TaskSchedulerWorkerThreadTest : public testing::TestWithParam<size_t> { |
| void TearDown() override { |
| worker_thread_->JoinForTesting(); |
| + |
| + { |
| + AutoSchedulerLock auto_lock(main_entry_worker_thread_lock_); |
| + EXPECT_EQ(worker_thread_.get(), main_entry_worker_thread_); |
| + } |
| } |
| size_t TasksPerSequence() const { return GetParam(); } |
| @@ -91,7 +96,12 @@ class TaskSchedulerWorkerThreadTest : public testing::TestWithParam<size_t> { |
| : outer_(outer) {} |
| // SchedulerWorkerThread::Delegate: |
| - void OnMainEntry() override { |
| + void OnMainEntry(SchedulerWorkerThread* worker_thread) override { |
| + { |
| + AutoSchedulerLock auto_lock(outer_->main_entry_worker_thread_lock_); |
| + outer_->main_entry_worker_thread_ = worker_thread; |
|
gab
2016/04/26 11:46:27
Why can't this directly compare to |worker_thread_
fdoray
2016/04/26 14:56:47
OnMainEntry() may be called before |worker_thread_
|
| + } |
| + |
| // Without synchronization, OnMainEntry() could be called twice without |
| // generating an error. |
| AutoSchedulerLock auto_lock(outer_->lock_); |
| @@ -200,6 +210,12 @@ class TaskSchedulerWorkerThreadTest : public testing::TestWithParam<size_t> { |
| // Number of times that RunTaskCallback() has been called. |
| size_t num_run_tasks_ = 0; |
| + // Synchronizes access to |main_entry_worker_thread_|. |
| + SchedulerLock main_entry_worker_thread_lock_; |
| + |
| + // The worker thread argument passed to OnMainEntry(). |
| + SchedulerWorkerThread* main_entry_worker_thread_ = nullptr; |
| + |
| DISALLOW_COPY_AND_ASSIGN(TaskSchedulerWorkerThreadTest); |
| }; |