summaryrefslogtreecommitdiff
path: root/lib/System/Unix
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-12-20 21:43:33 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-12-20 21:43:33 +0000
commit8b6628997fd07f448afd414be0119ccb595f64ee (patch)
tree68d589d5f190fd9713a958147b922cd20835fb5a /lib/System/Unix
parent5d282185f517d651d965e86dab1b383e0cb5e919 (diff)
downloadllvm-8b6628997fd07f448afd414be0119ccb595f64ee.tar.gz
llvm-8b6628997fd07f448afd414be0119ccb595f64ee.tar.bz2
llvm-8b6628997fd07f448afd414be0119ccb595f64ee.tar.xz
Implement GetTimeUsage correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19074 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/System/Unix')
-rw-r--r--lib/System/Unix/Process.cpp12
-rw-r--r--lib/System/Unix/Process.inc12
2 files changed, 16 insertions, 8 deletions
diff --git a/lib/System/Unix/Process.cpp b/lib/System/Unix/Process.cpp
index eef6535ee9..1c203ab50c 100644
--- a/lib/System/Unix/Process.cpp
+++ b/lib/System/Unix/Process.cpp
@@ -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);
diff --git a/lib/System/Unix/Process.inc b/lib/System/Unix/Process.inc
index eef6535ee9..1c203ab50c 100644
--- a/lib/System/Unix/Process.inc
+++ b/lib/System/Unix/Process.inc
@@ -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);