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

Side by Side Diff: util/synchronization/semaphore_test.cc

Issue 909263002: Add Semaphore::TimedWait() (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Created 5 years, 10 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
OLDNEW
1 // Copyright 2014 The Crashpad Authors. All rights reserved. 1 // Copyright 2014 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 12 matching lines...) Expand all
23 namespace crashpad { 23 namespace crashpad {
24 namespace test { 24 namespace test {
25 namespace { 25 namespace {
26 26
27 TEST(Semaphore, Simple) { 27 TEST(Semaphore, Simple) {
28 Semaphore semaphore(1); 28 Semaphore semaphore(1);
29 semaphore.Wait(); 29 semaphore.Wait();
30 semaphore.Signal(); 30 semaphore.Signal();
31 } 31 }
32 32
33 TEST(Semaphore, TimedWait) {
34 Semaphore semaphore(0);
35 semaphore.Signal();
36 EXPECT_TRUE(semaphore.TimedWait(0.01)); // 10ms
37 }
38
39 TEST(Semaphore, TimedWaitTimeout) {
40 Semaphore semaphore(0);
41 EXPECT_FALSE(semaphore.TimedWait(0.01)); // 10ms
42 }
43
33 struct ThreadMainInfo { 44 struct ThreadMainInfo {
34 #if defined(OS_POSIX) 45 #if defined(OS_POSIX)
35 pthread_t pthread; 46 pthread_t pthread;
36 #elif defined(OS_WIN) 47 #elif defined(OS_WIN)
37 HANDLE thread; 48 HANDLE thread;
38 #endif 49 #endif
39 Semaphore* semaphore; 50 Semaphore* semaphore;
40 size_t iterations; 51 size_t iterations;
41 }; 52 };
42 53
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 } 122 }
112 123
113 for (size_t index = 0; index < kThreads; ++index) { 124 for (size_t index = 0; index < kThreads; ++index) {
114 JoinThread(&info[index]); 125 JoinThread(&info[index]);
115 } 126 }
116 } 127 }
117 128
118 } // namespace 129 } // namespace
119 } // namespace test 130 } // namespace test
120 } // namespace crashpad 131 } // namespace crashpad
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698