Lines Matching refs:threads

62   ThreadWithMutexAndConditionVariable threads[kThreadCount];
65 LockGuard<Mutex> lock_guard(&threads[n].mutex_);
66 EXPECT_FALSE(threads[n].running_);
67 EXPECT_FALSE(threads[n].finished_);
68 threads[n].Start();
70 while (!threads[n].running_) {
71 threads[n].cv_.Wait(&threads[n].mutex_);
76 LockGuard<Mutex> lock_guard(&threads[n].mutex_);
77 EXPECT_TRUE(threads[n].running_);
78 EXPECT_FALSE(threads[n].finished_);
82 LockGuard<Mutex> lock_guard(&threads[n].mutex_);
83 EXPECT_TRUE(threads[n].running_);
84 EXPECT_FALSE(threads[n].finished_);
86 threads[n].running_ = false;
87 threads[n].cv_.NotifyOne();
92 LockGuard<Mutex> lock_guard(&threads[n].mutex_);
93 while (!threads[n].finished_) {
94 threads[n].cv_.Wait(&threads[n].mutex_);
96 EXPECT_FALSE(threads[n].running_);
97 EXPECT_TRUE(threads[n].finished_);
101 threads[n].Join();
102 LockGuard<Mutex> lock_guard(&threads[n].mutex_);
103 EXPECT_FALSE(threads[n].running_);
104 EXPECT_TRUE(threads[n].finished_);
143 ThreadWithSharedMutexAndConditionVariable threads[kThreadCount];
148 threads[n].mutex_ = &mutex;
149 threads[n].cv_ = &cv;
152 // Start all threads.
156 EXPECT_FALSE(threads[n].running_);
157 EXPECT_FALSE(threads[n].finished_);
158 threads[n].Start();
162 // Wait for all threads to start.
166 while (!threads[n].running_) {
172 // Make sure that all threads are running.
176 EXPECT_TRUE(threads[n].running_);
177 EXPECT_FALSE(threads[n].finished_);
181 // Tell all threads to quit.
185 EXPECT_TRUE(threads[n].running_);
186 EXPECT_FALSE(threads[n].finished_);
188 threads[n].running_ = false;
193 // Wait for all threads to quit.
197 while (!threads[n].finished_) {
203 // Make sure all threads are finished.
207 EXPECT_FALSE(threads[n].running_);
208 EXPECT_TRUE(threads[n].finished_);
212 // Join all threads.
214 threads[n].Join();
277 // Setup the threads.
278 Thread** threads = new Thread* [thread_count];
280 threads[n] = new LoopIncrementThread(n, &counter, limit, thread_count,
284 // Start all threads.
286 threads[n]->Start();
289 // Join and cleanup all threads.
291 threads[n]->Join();
292 delete threads[n];
294 delete[] threads;