| Index: src/platform/time.cc
|
| diff --git a/src/platform/time.cc b/src/platform/time.cc
|
| index 927cb92923eb78bcc2d1ad2b8b7bf54d356a7f14..653eb14bf410409be9ae36820d34a6c581591b11 100644
|
| --- a/src/platform/time.cc
|
| +++ b/src/platform/time.cc
|
| @@ -131,14 +131,11 @@ int64_t TimeDelta::InNanoseconds() const {
|
| class Clock V8_FINAL {
|
| public:
|
| Clock() : initial_time_(CurrentWallclockTime()),
|
| - initial_ticks_(TimeTicks::Now()),
|
| - mutex_(OS::CreateMutex()) {}
|
| -
|
| - ~Clock() { delete mutex_; }
|
| + initial_ticks_(TimeTicks::Now()) {}
|
|
|
| Time Now() {
|
| // This must be executed under lock.
|
| - ScopedLock sl(mutex_);
|
| + LockGuard<Mutex> lock_guard(&mutex_);
|
|
|
| // Calculate the time elapsed since we started our timer.
|
| TimeDelta elapsed = TimeTicks::Now() - initial_ticks_;
|
| @@ -155,7 +152,10 @@ class Clock V8_FINAL {
|
| }
|
|
|
| Time NowFromSystemTime() {
|
| - ScopedLock sl(mutex_);
|
| + // This must be executed under lock.
|
| + LockGuard<Mutex> lock_guard(&mutex_);
|
| +
|
| + // Resynchronize with the wallclock.
|
| initial_ticks_ = TimeTicks::Now();
|
| initial_time_ = CurrentWallclockTime();
|
| return initial_time_;
|
| @@ -174,7 +174,7 @@ class Clock V8_FINAL {
|
|
|
| TimeTicks initial_ticks_;
|
| Time initial_time_;
|
| - Mutex* mutex_;
|
| + Mutex mutex_;
|
| };
|
|
|
|
|
| @@ -396,15 +396,13 @@ class WindowsVistaTickClock V8_FINAL : public TickClock {
|
|
|
| class RolloverProtectedTickClock V8_FINAL : public TickClock {
|
| public:
|
| - RolloverProtectedTickClock()
|
| - : mutex_(OS::CreateMutex()), last_seen_now_(0), rollover_ms_(1) {
|
| - // We initialize rollover_ms_ to 1 to ensure that we will never
|
| - // return 0 from TimeTicks::HighResNow() and TimeTicks::Now() below.
|
| - }
|
| - virtual ~RolloverProtectedTickClock() { delete mutex_; }
|
| + // We initialize rollover_ms_ to 1 to ensure that we will never
|
| + // return 0 from TimeTicks::HighResNow() and TimeTicks::Now() below.
|
| + RolloverProtectedTickClock() : last_seen_now_(0), rollover_ms_(1) {}
|
| + virtual ~RolloverProtectedTickClock() {}
|
|
|
| virtual int64_t Now() V8_OVERRIDE {
|
| - ScopedLock sl(mutex_);
|
| + LockGuard<Mutex> lock_guard(&mutex_);
|
| // We use timeGetTime() to implement TimeTicks::Now(), which rolls over
|
| // every ~49.7 days. We try to track rollover ourselves, which works if
|
| // TimeTicks::Now() is called at least every 49 days.
|
| @@ -420,7 +418,7 @@ class RolloverProtectedTickClock V8_FINAL : public TickClock {
|
| }
|
|
|
| private:
|
| - Mutex* mutex_;
|
| + Mutex mutex_;
|
| DWORD last_seen_now_;
|
| int64_t rollover_ms_;
|
| };
|
|
|