Index: base/time.h |
=================================================================== |
--- base/time.h (revision 51045) |
+++ base/time.h (working copy) |
@@ -254,9 +254,27 @@ |
static Time FromFileTime(FILETIME ft); |
FILETIME ToFileTime() const; |
- // Enable or disable Windows high resolution timer. For more details |
- // see comments in time_win.cc. Returns true on success. |
- static bool UseHighResolutionTimer(bool use); |
+ // The minimum time of a low resolution timer. This is basically a windows |
+ // constant of ~15.6ms. While it does vary on some older OS versions, we'll |
+ // treat it as static across all windows versions. |
+ static const int kMinLowResolutionThresholdMs = 16; |
+ |
+ // Enable or disable Windows high resolution timer. If the high resolution |
+ // timer is not enabled, calls to ActivateHighResolutionTimer will fail. |
+ // When disabling the high resolution timer, this function will not cause |
+ // the high resolution timer to be deactivated, but will prevent future |
+ // activations. |
+ // Must be called from the main thread. |
+ // For more details see comments in time_win.cc. |
+ static void EnableHighResolutionTimer(bool enable); |
+ |
+ // Activates or deactivates the high resolution timer based on the |activate| |
+ // flag. If the HighResolutionTimer is not Enabled (see |
+ // EnableHighResolutionTimer), this function will return false. Otherwise |
+ // returns true. |
+ // All callers to activate the high resolution timer must eventually call |
+ // this function to deactivate the high resolution timer. |
+ static bool ActivateHighResolutionTimer(bool activate); |
#endif |
// Converts an exploded structure representing either the local time or UTC |
@@ -370,6 +388,13 @@ |
// platform-dependent epoch. |
static const int64 kTimeTToMicrosecondsOffset; |
+#if defined(OS_WIN) |
+ // Indicates whether fast timers are usable right now. For instance, |
+ // when using battery power, we might elect to prevent high speed timers |
+ // which would draw more power. |
+ static bool high_resolution_timer_enabled_; |
+#endif |
+ |
// Time in microseconds in UTC. |
int64 us_; |
}; |