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 |