| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  *  Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2  *  Copyright 2004 The WebRTC Project Authors. All rights reserved. | 
| 3  * | 3  * | 
| 4  *  Use of this source code is governed by a BSD-style license | 4  *  Use of this source code is governed by a BSD-style license | 
| 5  *  that can be found in the LICENSE file in the root of the source | 5  *  that can be found in the LICENSE file in the root of the source | 
| 6  *  tree. An additional intellectual property rights grant can be found | 6  *  tree. An additional intellectual property rights grant can be found | 
| 7  *  in the file PATENTS.  All contributing project authors may | 7  *  in the file PATENTS.  All contributing project authors may | 
| 8  *  be found in the AUTHORS file in the root of the source tree. | 8  *  be found in the AUTHORS file in the root of the source tree. | 
| 9  */ | 9  */ | 
| 10 | 10 | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 40 } | 40 } | 
| 41 | 41 | 
| 42 int64_t SystemTimeNanos() { | 42 int64_t SystemTimeNanos() { | 
| 43   int64_t ticks; | 43   int64_t ticks; | 
| 44 #if defined(WEBRTC_MAC) | 44 #if defined(WEBRTC_MAC) | 
| 45   static mach_timebase_info_data_t timebase; | 45   static mach_timebase_info_data_t timebase; | 
| 46   if (timebase.denom == 0) { | 46   if (timebase.denom == 0) { | 
| 47     // Get the timebase if this is the first time we run. | 47     // Get the timebase if this is the first time we run. | 
| 48     // Recommended by Apple's QA1398. | 48     // Recommended by Apple's QA1398. | 
| 49     if (mach_timebase_info(&timebase) != KERN_SUCCESS) { | 49     if (mach_timebase_info(&timebase) != KERN_SUCCESS) { | 
| 50       RTC_DCHECK(false); | 50       RTC_NOTREACHED(); | 
| 51     } | 51     } | 
| 52   } | 52   } | 
| 53   // Use timebase to convert absolute time tick units into nanoseconds. | 53   // Use timebase to convert absolute time tick units into nanoseconds. | 
| 54   ticks = mach_absolute_time() * timebase.numer / timebase.denom; | 54   ticks = mach_absolute_time() * timebase.numer / timebase.denom; | 
| 55 #elif defined(WEBRTC_POSIX) | 55 #elif defined(WEBRTC_POSIX) | 
| 56   struct timespec ts; | 56   struct timespec ts; | 
| 57   // TODO(deadbeef): Do we need to handle the case when CLOCK_MONOTONIC is not | 57   // TODO(deadbeef): Do we need to handle the case when CLOCK_MONOTONIC is not | 
| 58   // supported? | 58   // supported? | 
| 59   clock_gettime(CLOCK_MONOTONIC, &ts); | 59   clock_gettime(CLOCK_MONOTONIC, &ts); | 
| 60   ticks = kNumNanosecsPerSec * static_cast<int64_t>(ts.tv_sec) + | 60   ticks = kNumNanosecsPerSec * static_cast<int64_t>(ts.tv_sec) + | 
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 197 #elif defined(WEBRTC_WIN) | 197 #elif defined(WEBRTC_WIN) | 
| 198   struct _timeb time; | 198   struct _timeb time; | 
| 199   _ftime(&time); | 199   _ftime(&time); | 
| 200   // Convert from second (1.0) and milliseconds (1e-3). | 200   // Convert from second (1.0) and milliseconds (1e-3). | 
| 201   return (static_cast<int64_t>(time.time) * rtc::kNumMicrosecsPerSec + | 201   return (static_cast<int64_t>(time.time) * rtc::kNumMicrosecsPerSec + | 
| 202           static_cast<int64_t>(time.millitm) * rtc::kNumMicrosecsPerMillisec); | 202           static_cast<int64_t>(time.millitm) * rtc::kNumMicrosecsPerMillisec); | 
| 203 #endif | 203 #endif | 
| 204 } | 204 } | 
| 205 | 205 | 
| 206 } // namespace rtc | 206 } // namespace rtc | 
| OLD | NEW | 
|---|