summaryrefslogtreecommitdiff
path: root/rts/win32
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-05-17 15:40:26 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-03-05 14:53:12 -0500
commitcedd6f3041de6abe64dfa3257bec7730a9dced9f (patch)
treed4df43117c979edf713b220e7ecfa68bd731c37a /rts/win32
parent8c663c2c2ff0d79b2c7cfadb0ce961339f1e7e4c (diff)
downloadhaskell-cedd6f3041de6abe64dfa3257bec7730a9dced9f.tar.gz
rts: Add getCurrentThreadCPUTime helper
Diffstat (limited to 'rts/win32')
-rw-r--r--rts/win32/GetTime.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/rts/win32/GetTime.c b/rts/win32/GetTime.c
index 61a978e2aa..e0f5e7d406 100644
--- a/rts/win32/GetTime.c
+++ b/rts/win32/GetTime.c
@@ -35,6 +35,20 @@ getProcessTimes(Time *user, Time *elapsed)
}
Time
+getCurrentThreadCPUTime(void)
+{
+ FILETIME creationTime, exitTime, userTime, kernelTime = {0,0};
+
+ if (!GetThreadTimes(GetCurrentThread(), &creationTime,
+ &exitTime, &kernelTime, &userTime)) {
+ sysErrorBelch("getCurrentThreadCPUTime: Win32 error %lu", GetLastError());
+ return 0;
+ }
+
+ return fileTimeToRtsTime(userTime);
+}
+
+Time
getProcessCPUTime(void)
{
FILETIME creationTime, exitTime, userTime, kernelTime = {0,0};