| OLD | NEW | 
|---|
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 | 5 | 
| 6 // Windows Timer Primer | 6 // Windows Timer Primer | 
| 7 // | 7 // | 
| 8 // A good article:  http://www.ddj.com/windows/184416651 | 8 // A good article:  http://www.ddj.com/windows/184416651 | 
| 9 // A good mozilla bug:  http://bugzilla.mozilla.org/show_bug.cgi?id=363258 | 9 // A good mozilla bug:  http://bugzilla.mozilla.org/show_bug.cgi?id=363258 | 
| 10 // | 10 // | 
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 106   // We implement time using the high-resolution timers so that we can get | 106   // We implement time using the high-resolution timers so that we can get | 
| 107   // timeouts which are smaller than 10-15ms.  If we just used | 107   // timeouts which are smaller than 10-15ms.  If we just used | 
| 108   // CurrentWallclockMicroseconds(), we'd have the less-granular timer. | 108   // CurrentWallclockMicroseconds(), we'd have the less-granular timer. | 
| 109   // | 109   // | 
| 110   // To make this work, we initialize the clock (initial_time) and the | 110   // To make this work, we initialize the clock (initial_time) and the | 
| 111   // counter (initial_ctr).  To compute the initial time, we can check | 111   // counter (initial_ctr).  To compute the initial time, we can check | 
| 112   // the number of ticks that have elapsed, and compute the delta. | 112   // the number of ticks that have elapsed, and compute the delta. | 
| 113   // | 113   // | 
| 114   // To avoid any drift, we periodically resync the counters to the system | 114   // To avoid any drift, we periodically resync the counters to the system | 
| 115   // clock. | 115   // clock. | 
| 116   while(true) { | 116   while (true) { | 
| 117     TimeTicks ticks = TimeTicks::Now(); | 117     TimeTicks ticks = TimeTicks::Now(); | 
| 118 | 118 | 
| 119     // Calculate the time elapsed since we started our timer | 119     // Calculate the time elapsed since we started our timer | 
| 120     TimeDelta elapsed = ticks - initial_ticks; | 120     TimeDelta elapsed = ticks - initial_ticks; | 
| 121 | 121 | 
| 122     // Check if enough time has elapsed that we need to resync the clock. | 122     // Check if enough time has elapsed that we need to resync the clock. | 
| 123     if (elapsed.InMilliseconds() > kMaxMillisecondsToAvoidDrift) { | 123     if (elapsed.InMilliseconds() > kMaxMillisecondsToAvoidDrift) { | 
| 124       InitializeClock(); | 124       InitializeClock(); | 
| 125       continue; | 125       continue; | 
| 126     } | 126     } | 
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 381 | 381 | 
| 382 // static | 382 // static | 
| 383 TimeTicks TimeTicks::Now() { | 383 TimeTicks TimeTicks::Now() { | 
| 384   return TimeTicks() + Singleton<NowSingleton>::get()->Now(); | 384   return TimeTicks() + Singleton<NowSingleton>::get()->Now(); | 
| 385 } | 385 } | 
| 386 | 386 | 
| 387 // static | 387 // static | 
| 388 TimeTicks TimeTicks::HighResNow() { | 388 TimeTicks TimeTicks::HighResNow() { | 
| 389   return TimeTicks() + Singleton<HighResNowSingleton>::get()->Now(); | 389   return TimeTicks() + Singleton<HighResNowSingleton>::get()->Now(); | 
| 390 } | 390 } | 
| OLD | NEW | 
|---|