Merge "Preliminary cleanup of <sys/cdefs.h>."
diff --git a/benchmarks/semaphore_benchmark.cpp b/benchmarks/semaphore_benchmark.cpp
index d260803..b932a2b3 100644
--- a/benchmarks/semaphore_benchmark.cpp
+++ b/benchmarks/semaphore_benchmark.cpp
@@ -96,22 +96,27 @@
sched_setscheduler(0, SCHED_IDLE, ¶m);
BM_semaphore_sem_post_running = 1;
+ setup = true;
}
~SemaphoreFixture() {
- sched_setscheduler(0, SCHED_OTHER, ¶m);
+ if (setup) {
+ // Only do this if the test was actually run.
+ sched_setscheduler(0, SCHED_OTHER, ¶m);
- if (BM_semaphore_sem_post_running > 0) {
- BM_semaphore_sem_post_running = 0;
+ if (BM_semaphore_sem_post_running > 0) {
+ BM_semaphore_sem_post_running = 0;
+ }
+ do {
+ sem_post(&semaphore);
+ sched_yield();
+ } while (BM_semaphore_sem_post_running != -1);
}
- do {
- sem_post(&semaphore);
- sched_yield();
- } while (BM_semaphore_sem_post_running != -1);
}
sem_t semaphore;
sched_param param;
+ bool setup = false;
};
BENCHMARK_F(SemaphoreFixture, semaphore_sem_post)(benchmark::State& state) {