mirror of
https://github.com/google/benchmark.git
synced 2024-11-25 22:47:20 +00:00
[#4] Cleaned up FastClock background thread.
This commit is contained in:
parent
ceea4cb380
commit
772ff6f1f1
|
@ -509,7 +509,9 @@ class State::FastClock {
|
||||||
}
|
}
|
||||||
|
|
||||||
void BGThread() {
|
void BGThread() {
|
||||||
do {
|
mutex_lock l(&bg_mutex_);
|
||||||
|
while (!bg_done_)
|
||||||
|
{
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
gettimeofday(&tv, nullptr);
|
gettimeofday(&tv, nullptr);
|
||||||
|
|
||||||
|
@ -523,13 +525,12 @@ class State::FastClock {
|
||||||
ts.tv_nsec %= kNumNanosPerSecond;
|
ts.tv_nsec %= kNumNanosPerSecond;
|
||||||
|
|
||||||
// NOTE: this should probably be platform specific.
|
// NOTE: this should probably be platform specific.
|
||||||
mutex_lock l(&bg_mutex_);
|
|
||||||
pthread_cond_timedwait(&bg_cond_, &bg_mutex_, &ts);
|
pthread_cond_timedwait(&bg_cond_, &bg_mutex_, &ts);
|
||||||
|
|
||||||
std::atomic_store(&approx_time_, NowMicros());
|
std::atomic_store(&approx_time_, NowMicros());
|
||||||
// NOTE: same code but no memory barrier. think on it.
|
// NOTE: same code but no memory barrier. think on it.
|
||||||
// base::subtle::Release_Store(&approx_time_, NowMicros());
|
// base::subtle::Release_Store(&approx_time_, NowMicros());
|
||||||
} while (!bg_done_);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(FastClock)
|
DISALLOW_COPY_AND_ASSIGN(FastClock)
|
||||||
|
|
Loading…
Reference in a new issue