OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "base/time/time.h" | 5 #include "base/time/time.h" |
6 | 6 |
7 #include <CoreFoundation/CFDate.h> | 7 #include <CoreFoundation/CFDate.h> |
8 #include <CoreFoundation/CFTimeZone.h> | 8 #include <CoreFoundation/CFTimeZone.h> |
9 #include <mach/mach.h> | 9 #include <mach/mach.h> |
10 #include <mach/mach_time.h> | 10 #include <mach/mach_time.h> |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 base::mac::ScopedMachSendRight thread(mach_thread_self()); | 76 base::mac::ScopedMachSendRight thread(mach_thread_self()); |
77 mach_msg_type_number_t thread_info_count = THREAD_BASIC_INFO_COUNT; | 77 mach_msg_type_number_t thread_info_count = THREAD_BASIC_INFO_COUNT; |
78 thread_basic_info_data_t thread_info_data; | 78 thread_basic_info_data_t thread_info_data; |
79 | 79 |
80 if (thread.get() == MACH_PORT_NULL) { | 80 if (thread.get() == MACH_PORT_NULL) { |
81 DLOG(ERROR) << "Failed to get mach_thread_self()"; | 81 DLOG(ERROR) << "Failed to get mach_thread_self()"; |
82 return 0; | 82 return 0; |
83 } | 83 } |
84 | 84 |
85 kern_return_t kr = thread_info( | 85 kern_return_t kr = thread_info( |
86 thread, | 86 thread.get(), |
87 THREAD_BASIC_INFO, | 87 THREAD_BASIC_INFO, |
88 reinterpret_cast<thread_info_t>(&thread_info_data), | 88 reinterpret_cast<thread_info_t>(&thread_info_data), |
89 &thread_info_count); | 89 &thread_info_count); |
90 MACH_DCHECK(kr == KERN_SUCCESS, kr) << "thread_info"; | 90 MACH_DCHECK(kr == KERN_SUCCESS, kr) << "thread_info"; |
91 | 91 |
92 base::CheckedNumeric<int64_t> absolute_micros( | 92 base::CheckedNumeric<int64_t> absolute_micros( |
93 thread_info_data.user_time.seconds); | 93 thread_info_data.user_time.seconds); |
94 absolute_micros *= base::Time::kMicrosecondsPerSecond; | 94 absolute_micros *= base::Time::kMicrosecondsPerSecond; |
95 absolute_micros += thread_info_data.user_time.microseconds; | 95 absolute_micros += thread_info_data.user_time.microseconds; |
96 return absolute_micros.ValueOrDie(); | 96 return absolute_micros.ValueOrDie(); |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 ThreadTicks ThreadTicks::Now() { | 230 ThreadTicks ThreadTicks::Now() { |
231 return ThreadTicks(ComputeThreadTicks()); | 231 return ThreadTicks(ComputeThreadTicks()); |
232 } | 232 } |
233 | 233 |
234 // static | 234 // static |
235 TraceTicks TraceTicks::Now() { | 235 TraceTicks TraceTicks::Now() { |
236 return TraceTicks(ComputeCurrentTicks()); | 236 return TraceTicks(ComputeCurrentTicks()); |
237 } | 237 } |
238 | 238 |
239 } // namespace base | 239 } // namespace base |
OLD | NEW |