summaryrefslogtreecommitdiff
path: root/runtime/thread.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/thread.cc')
-rw-r--r--runtime/thread.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/runtime/thread.cc b/runtime/thread.cc
index 50f6bfc499..89465979da 100644
--- a/runtime/thread.cc
+++ b/runtime/thread.cc
@@ -1485,12 +1485,21 @@ void Thread::GetThreadName(std::string& name) const {
uint64_t Thread::GetCpuMicroTime() const {
#if defined(__linux__)
+ return Thread::GetCpuNanoTime() / 1000;
+#else // __APPLE__
+ UNIMPLEMENTED(WARNING);
+ return -1;
+#endif
+}
+
+uint64_t Thread::GetCpuNanoTime() const {
+#if defined(__linux__)
clockid_t cpu_clock_id;
pthread_getcpuclockid(tlsPtr_.pthread_self, &cpu_clock_id);
timespec now;
clock_gettime(cpu_clock_id, &now);
- return static_cast<uint64_t>(now.tv_sec) * UINT64_C(1000000) +
- static_cast<uint64_t>(now.tv_nsec) / UINT64_C(1000);
+ return static_cast<uint64_t>(now.tv_sec) * UINT64_C(1000000000) +
+ static_cast<uint64_t>(now.tv_nsec);
#else // __APPLE__
UNIMPLEMENTED(WARNING);
return -1;