[#4] Cleaned up FastClock background thread.
diff --git a/src/benchmark.cc b/src/benchmark.cc
index 9e68436..b33f1c9 100644
--- a/src/benchmark.cc
+++ b/src/benchmark.cc
@@ -509,7 +509,9 @@
}
void BGThread() {
- do {
+ mutex_lock l(&bg_mutex_);
+ while (!bg_done_)
+ {
struct timeval tv;
gettimeofday(&tv, nullptr);
@@ -523,13 +525,12 @@
ts.tv_nsec %= kNumNanosPerSecond;
// NOTE: this should probably be platform specific.
- mutex_lock l(&bg_mutex_);
pthread_cond_timedwait(&bg_cond_, &bg_mutex_, &ts);
std::atomic_store(&approx_time_, NowMicros());
// NOTE: same code but no memory barrier. think on it.
// base::subtle::Release_Store(&approx_time_, NowMicros());
- } while (!bg_done_);
+ }
}
DISALLOW_COPY_AND_ASSIGN(FastClock)