diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-12-20 21:43:33 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-12-20 21:43:33 +0000 |
commit | 8b6628997fd07f448afd414be0119ccb595f64ee (patch) | |
tree | 68d589d5f190fd9713a958147b922cd20835fb5a /lib/System/Unix | |
parent | 5d282185f517d651d965e86dab1b383e0cb5e919 (diff) |
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.cpp | 12 | ||||
-rw-r--r-- | lib/System/Unix/Process.inc | 12 |
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); |