| OLD | NEW |
| 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 <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 694 void StartTaskRunner() { | 694 void StartTaskRunner() { |
| 695 pool_owner_.reset( | 695 pool_owner_.reset( |
| 696 new SequencedWorkerPoolOwner(10, "SequencedWorkerPoolTaskRunnerTest")); | 696 new SequencedWorkerPoolOwner(10, "SequencedWorkerPoolTaskRunnerTest")); |
| 697 } | 697 } |
| 698 | 698 |
| 699 scoped_refptr<SequencedWorkerPool> GetTaskRunner() { | 699 scoped_refptr<SequencedWorkerPool> GetTaskRunner() { |
| 700 return pool_owner_->pool(); | 700 return pool_owner_->pool(); |
| 701 } | 701 } |
| 702 | 702 |
| 703 void StopTaskRunner() { | 703 void StopTaskRunner() { |
| 704 // Make sure all tasks (including delayed ones) are run before shutting | 704 // Make sure all tasks are run before shutting down. Delayed tasks are |
| 705 // down. | 705 // not run, they're simply deleted. |
| 706 pool_owner_->pool()->FlushForTesting(); | 706 pool_owner_->pool()->FlushForTesting(); |
| 707 pool_owner_->pool()->Shutdown(); | 707 pool_owner_->pool()->Shutdown(); |
| 708 // Don't reset |pool_owner_| here, as the test may still hold a | 708 // Don't reset |pool_owner_| here, as the test may still hold a |
| 709 // reference to the pool. | 709 // reference to the pool. |
| 710 } | 710 } |
| 711 | 711 |
| 712 bool TaskRunnerHandlesNonZeroDelays() const { | 712 bool TaskRunnerHandlesNonZeroDelays() const { |
| 713 return true; | 713 return true; |
| 714 } | 714 } |
| 715 | 715 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 734 new SequencedWorkerPoolOwner(10, "SequencedWorkerPoolTaskRunnerTest")); | 734 new SequencedWorkerPoolOwner(10, "SequencedWorkerPoolTaskRunnerTest")); |
| 735 task_runner_ = pool_owner_->pool()->GetTaskRunnerWithShutdownBehavior( | 735 task_runner_ = pool_owner_->pool()->GetTaskRunnerWithShutdownBehavior( |
| 736 SequencedWorkerPool::BLOCK_SHUTDOWN); | 736 SequencedWorkerPool::BLOCK_SHUTDOWN); |
| 737 } | 737 } |
| 738 | 738 |
| 739 scoped_refptr<TaskRunner> GetTaskRunner() { | 739 scoped_refptr<TaskRunner> GetTaskRunner() { |
| 740 return task_runner_; | 740 return task_runner_; |
| 741 } | 741 } |
| 742 | 742 |
| 743 void StopTaskRunner() { | 743 void StopTaskRunner() { |
| 744 // Make sure all tasks (including delayed ones) are run before shutting | 744 // Make sure all tasks are run before shutting down. Delayed tasks are |
| 745 // down. | 745 // not run, they're simply deleted. |
| 746 pool_owner_->pool()->FlushForTesting(); | 746 pool_owner_->pool()->FlushForTesting(); |
| 747 pool_owner_->pool()->Shutdown(); | 747 pool_owner_->pool()->Shutdown(); |
| 748 // Don't reset |pool_owner_| here, as the test may still hold a | 748 // Don't reset |pool_owner_| here, as the test may still hold a |
| 749 // reference to the pool. | 749 // reference to the pool. |
| 750 } | 750 } |
| 751 | 751 |
| 752 bool TaskRunnerHandlesNonZeroDelays() const { | 752 bool TaskRunnerHandlesNonZeroDelays() const { |
| 753 return true; | 753 return true; |
| 754 } | 754 } |
| 755 | 755 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 775 10, "SequencedWorkerPoolSequencedTaskRunnerTest")); | 775 10, "SequencedWorkerPoolSequencedTaskRunnerTest")); |
| 776 task_runner_ = pool_owner_->pool()->GetSequencedTaskRunner( | 776 task_runner_ = pool_owner_->pool()->GetSequencedTaskRunner( |
| 777 pool_owner_->pool()->GetSequenceToken()); | 777 pool_owner_->pool()->GetSequenceToken()); |
| 778 } | 778 } |
| 779 | 779 |
| 780 scoped_refptr<SequencedTaskRunner> GetTaskRunner() { | 780 scoped_refptr<SequencedTaskRunner> GetTaskRunner() { |
| 781 return task_runner_; | 781 return task_runner_; |
| 782 } | 782 } |
| 783 | 783 |
| 784 void StopTaskRunner() { | 784 void StopTaskRunner() { |
| 785 // Make sure all tasks (including delayed ones) are run before shutting | 785 // Make sure all tasks are run before shutting down. Delayed tasks are |
| 786 // down. | 786 // not run, they're simply deleted. |
| 787 pool_owner_->pool()->FlushForTesting(); | 787 pool_owner_->pool()->FlushForTesting(); |
| 788 pool_owner_->pool()->Shutdown(); | 788 pool_owner_->pool()->Shutdown(); |
| 789 // Don't reset |pool_owner_| here, as the test may still hold a | 789 // Don't reset |pool_owner_| here, as the test may still hold a |
| 790 // reference to the pool. | 790 // reference to the pool. |
| 791 } | 791 } |
| 792 | 792 |
| 793 bool TaskRunnerHandlesNonZeroDelays() const { | 793 bool TaskRunnerHandlesNonZeroDelays() const { |
| 794 return true; | 794 return true; |
| 795 } | 795 } |
| 796 | 796 |
| 797 private: | 797 private: |
| 798 MessageLoop message_loop_; | 798 MessageLoop message_loop_; |
| 799 scoped_ptr<SequencedWorkerPoolOwner> pool_owner_; | 799 scoped_ptr<SequencedWorkerPoolOwner> pool_owner_; |
| 800 scoped_refptr<SequencedTaskRunner> task_runner_; | 800 scoped_refptr<SequencedTaskRunner> task_runner_; |
| 801 }; | 801 }; |
| 802 | 802 |
| 803 INSTANTIATE_TYPED_TEST_CASE_P( | 803 INSTANTIATE_TYPED_TEST_CASE_P( |
| 804 SequencedWorkerPoolSequencedTaskRunner, TaskRunnerTest, | 804 SequencedWorkerPoolSequencedTaskRunner, TaskRunnerTest, |
| 805 SequencedWorkerPoolSequencedTaskRunnerTestDelegate); | 805 SequencedWorkerPoolSequencedTaskRunnerTestDelegate); |
| 806 | 806 |
| 807 INSTANTIATE_TYPED_TEST_CASE_P( | 807 INSTANTIATE_TYPED_TEST_CASE_P( |
| 808 SequencedWorkerPoolSequencedTaskRunner, SequencedTaskRunnerTest, | 808 SequencedWorkerPoolSequencedTaskRunner, SequencedTaskRunnerTest, |
| 809 SequencedWorkerPoolSequencedTaskRunnerTestDelegate); | 809 SequencedWorkerPoolSequencedTaskRunnerTestDelegate); |
| 810 | 810 |
| 811 } // namespace | 811 } // namespace |
| 812 | 812 |
| 813 } // namespace base | 813 } // namespace base |
| OLD | NEW |