[#4] Cleaned up FastClock background thread.

This commit is contained in:
Eugene Zhuk 2014-01-20 23:18:25 -08:00
parent ceea4cb380
commit 772ff6f1f1

View file

@ -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)