Implement GetTimeUsage correctly.
authorReid Spencer <rspencer@reidspencer.com>
Mon, 20 Dec 2004 21:43:33 +0000 (21:43 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Mon, 20 Dec 2004 21:43:33 +0000 (21:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19074 91177308-0d34-0410-b5e6-96231b3b80d8

lib/System/Unix/Process.cpp
lib/System/Unix/Process.inc

index eef6535ee90ffde001bb662c900a43236c3dc387..1c203ab50c5552964c9e56b53b9eb3ed95eefdc5 100644 (file)
@@ -92,10 +92,14 @@ Process::GetTimeUsage(TimeValue& elapsed, TimeValue& user_time,
 #if defined(HAVE_GETRUSAGE)
   struct rusage usage;
   ::getrusage(RUSAGE_SELF, &usage);
-  user_time.seconds( usage.ru_utime.tv_sec );
-  user_time.microseconds( usage.ru_utime.tv_usec );
-  sys_time.seconds( usage.ru_stime.tv_sec );
-  sys_time.microseconds( usage.ru_stime.tv_usec );
+  user_time = TimeValue( 
+    static_cast<TimeValue::SecondsType>( usage.ru_utime.tv_sec ), 
+    static_cast<TimeValue::NanoSecondsType>( usage.ru_utime.tv_usec * 
+      TimeValue::NANOSECONDS_PER_MICROSECOND ) );
+  sys_time = TimeValue( 
+    static_cast<TimeValue::SecondsType>( usage.ru_stime.tv_sec ), 
+    static_cast<TimeValue::NanoSecondsType>( usage.ru_stime.tv_usec * 
+      TimeValue::NANOSECONDS_PER_MICROSECOND ) );
 #else
 #warning Cannot get usage times on this platform
   user_time.seconds(0);
index eef6535ee90ffde001bb662c900a43236c3dc387..1c203ab50c5552964c9e56b53b9eb3ed95eefdc5 100644 (file)
@@ -92,10 +92,14 @@ Process::GetTimeUsage(TimeValue& elapsed, TimeValue& user_time,
 #if defined(HAVE_GETRUSAGE)
   struct rusage usage;
   ::getrusage(RUSAGE_SELF, &usage);
-  user_time.seconds( usage.ru_utime.tv_sec );
-  user_time.microseconds( usage.ru_utime.tv_usec );
-  sys_time.seconds( usage.ru_stime.tv_sec );
-  sys_time.microseconds( usage.ru_stime.tv_usec );
+  user_time = TimeValue( 
+    static_cast<TimeValue::SecondsType>( usage.ru_utime.tv_sec ), 
+    static_cast<TimeValue::NanoSecondsType>( usage.ru_utime.tv_usec * 
+      TimeValue::NANOSECONDS_PER_MICROSECOND ) );
+  sys_time = TimeValue( 
+    static_cast<TimeValue::SecondsType>( usage.ru_stime.tv_sec ), 
+    static_cast<TimeValue::NanoSecondsType>( usage.ru_stime.tv_usec * 
+      TimeValue::NANOSECONDS_PER_MICROSECOND ) );
 #else
 #warning Cannot get usage times on this platform
   user_time.seconds(0);