Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(386)

Side by Side Diff: base/threading/sequenced_worker_pool_unittest.cc

Issue 10065037: RefCounted types should not have public destructors, base/ edition (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 <algorithm> 5 #include <algorithm>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 : lock_(), 70 : lock_(),
71 cond_var_(&lock_), 71 cond_var_(&lock_),
72 started_events_(0) { 72 started_events_(0) {
73 } 73 }
74 74
75 // Each of these tasks appends the argument to the complete sequence vector 75 // Each of these tasks appends the argument to the complete sequence vector
76 // so calling code can see what order they finished in. 76 // so calling code can see what order they finished in.
77 void FastTask(int id) { 77 void FastTask(int id) {
78 SignalWorkerDone(id); 78 SignalWorkerDone(id);
79 } 79 }
80
80 void SlowTask(int id) { 81 void SlowTask(int id) {
81 base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1)); 82 base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
82 SignalWorkerDone(id); 83 SignalWorkerDone(id);
83 } 84 }
84 85
85 void BlockTask(int id, ThreadBlocker* blocker) { 86 void BlockTask(int id, ThreadBlocker* blocker) {
86 // Note that this task has started and signal anybody waiting for that 87 // Note that this task has started and signal anybody waiting for that
87 // to happen. 88 // to happen.
88 { 89 {
89 base::AutoLock lock(lock_); 90 base::AutoLock lock(lock_);
(...skipping 29 matching lines...) Expand all
119 return ret; 120 return ret;
120 } 121 }
121 122
122 void ClearCompleteSequence() { 123 void ClearCompleteSequence() {
123 base::AutoLock lock(lock_); 124 base::AutoLock lock(lock_);
124 complete_sequence_.clear(); 125 complete_sequence_.clear();
125 started_events_ = 0; 126 started_events_ = 0;
126 } 127 }
127 128
128 private: 129 private:
130 friend class base::RefCountedThreadSafe<TestTracker>;
131 ~TestTracker() {}
132
129 void SignalWorkerDone(int id) { 133 void SignalWorkerDone(int id) {
130 { 134 {
131 base::AutoLock lock(lock_); 135 base::AutoLock lock(lock_);
132 complete_sequence_.push_back(id); 136 complete_sequence_.push_back(id);
133 } 137 }
134 cond_var_.Signal(); 138 cond_var_.Signal();
135 } 139 }
136 140
137 // Protects the complete_sequence. 141 // Protects the complete_sequence.
138 base::Lock lock_; 142 base::Lock lock_;
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 scoped_ptr<SequencedWorkerPoolOwner> pool_owner_; 533 scoped_ptr<SequencedWorkerPoolOwner> pool_owner_;
530 }; 534 };
531 535
532 INSTANTIATE_TYPED_TEST_CASE_P( 536 INSTANTIATE_TYPED_TEST_CASE_P(
533 SequencedWorkerPool, TaskRunnerTest, 537 SequencedWorkerPool, TaskRunnerTest,
534 SequencedWorkerPoolTaskRunnerTestDelegate); 538 SequencedWorkerPoolTaskRunnerTestDelegate);
535 539
536 } // namespace 540 } // namespace
537 541
538 } // namespace base 542 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698