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

Unified Diff: util/mac/process_reader_test.cc

Issue 589243003: Add Semaphore and its test, and use it where semaphores are needed (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | util/mach/exception_ports_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: util/mac/process_reader_test.cc
diff --git a/util/mac/process_reader_test.cc b/util/mac/process_reader_test.cc
index 4ea9ff0889a36e4d98d73d016ace6aab73e536f9..795468f540c6ffd447fb075d3396bd401ae86109 100644
--- a/util/mac/process_reader_test.cc
+++ b/util/mac/process_reader_test.cc
@@ -14,7 +14,6 @@
#include "util/mac/process_reader.h"
-#include <dispatch/dispatch.h>
#include <mach-o/dyld.h>
#include <mach-o/dyld_images.h>
#include <mach/mach.h>
@@ -35,6 +34,7 @@
#include "util/mac/mach_o_image_reader.h"
#include "util/mach/mach_extensions.h"
#include "util/stdlib/pointer_container.h"
+#include "util/synchronization/semaphore.h"
#include "util/test/errors.h"
#include "util/test/mac/dyld.h"
#include "util/test/mac/mach_errors.h"
@@ -170,8 +170,8 @@ class TestThreadPool {
}
}
- for (const ThreadInfo* thread_info : thread_infos_) {
- dispatch_semaphore_signal(thread_info->exit_semaphore);
+ for (ThreadInfo* thread_info : thread_infos_) {
+ thread_info->exit_semaphore.Signal();
}
for (const ThreadInfo* thread_info : thread_infos_) {
@@ -197,10 +197,8 @@ class TestThreadPool {
ASSERT_EQ(0, rv);
}
- for (const ThreadInfo* thread_info : thread_infos_) {
- long rv = dispatch_semaphore_wait(thread_info->ready_semaphore,
- DISPATCH_TIME_FOREVER);
- ASSERT_EQ(0, rv);
+ for (ThreadInfo* thread_info : thread_infos_) {
+ thread_info->ready_semaphore.Wait();
}
// If present, suspend the thread at indices 1 through 3 the same number of
@@ -238,15 +236,12 @@ class TestThreadPool {
ThreadInfo()
: pthread(NULL),
stack_address(0),
- ready_semaphore(dispatch_semaphore_create(0)),
- exit_semaphore(dispatch_semaphore_create(0)),
+ ready_semaphore(0),
+ exit_semaphore(0),
suspend_count(0) {
}
- ~ThreadInfo() {
- dispatch_release(exit_semaphore);
- dispatch_release(ready_semaphore);
- }
+ ~ThreadInfo() {}
// The thread’s ID, set at the time the thread is created.
pthread_t pthread;
@@ -259,12 +254,12 @@ class TestThreadPool {
// setting up its ThreadInfo structure. The main thread waits on this
// semaphore before using any data that the worker thread is responsible for
// setting.
- dispatch_semaphore_t ready_semaphore;
+ Semaphore ready_semaphore;
// The worker thread waits on exit_semaphore to determine when it’s safe to
// exit. The main thread signals exit_semaphore when it no longer needs the
// worker thread.
- dispatch_semaphore_t exit_semaphore;
+ Semaphore exit_semaphore;
// The thread’s suspend count.
int suspend_count;
@@ -276,8 +271,8 @@ class TestThreadPool {
thread_info->stack_address =
reinterpret_cast<mach_vm_address_t>(&thread_info);
- dispatch_semaphore_signal(thread_info->ready_semaphore);
- dispatch_semaphore_wait(thread_info->exit_semaphore, DISPATCH_TIME_FOREVER);
+ thread_info->ready_semaphore.Signal();
+ thread_info->exit_semaphore.Wait();
// Check this here after everything’s known to be synchronized, otherwise
// there’s a race between the parent thread storing this thread’s pthread_t
« no previous file with comments | « no previous file | util/mach/exception_ports_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698