Fix a bug where system time always equals user time
authorReid Spencer <rspencer@reidspencer.com>
Mon, 20 Dec 2004 21:44:27 +0000 (21:44 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Mon, 20 Dec 2004 21:44:27 +0000 (21:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19075 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Timer.cpp

index 1b2f91d03b430a6fd984017e83a3f928ee7e806f..47d696804a77b65f2c79b3cc22f16737f9210a17 100644 (file)
@@ -105,12 +105,19 @@ static TimeRecord getTimeRecord(bool Start) {
   sys::TimeValue user(0,0);
   sys::TimeValue sys(0,0);
 
-  sys::Process::GetTimeUsage(now,user,sys);
+  long MemUsed = 0;
+  if (Start) {
+    sys::Process::GetTimeUsage(now,user,sys);
+    MemUsed = sys::Process::GetMallocUsage();
+  } else {
+    MemUsed = sys::Process::GetMallocUsage();
+    sys::Process::GetTimeUsage(now,user,sys);
+  }
 
-  Result.Elapsed    = now.seconds()  + now.microseconds()  / 1000000.0;
-  Result.UserTime   = user.seconds() + user.microseconds() / 1000000.0;
-  Result.UserTime   = sys.seconds()  + sys.microseconds()  / 1000000.0;
-  Result.MemUsed = sys::Process::GetMallocUsage();
+  Result.Elapsed  = now.seconds()  + now.microseconds()  / 1000000.0;
+  Result.UserTime = user.seconds() + user.microseconds() / 1000000.0;
+  Result.SystemTime  = sys.seconds()  + sys.microseconds()  / 1000000.0;
+  Result.MemUsed  = MemUsed;
 
   return Result;
 }