gopkg.in/dedis/onet.v2@v2.0.0-20181115163211-c8f3724038a7/simul/monitor/rtime_windows.go (about) 1 // +build windows 2 3 package monitor 4 5 import ( 6 "syscall" 7 8 "gopkg.in/dedis/onet.v2/log" 9 ) 10 11 // Returns the system and the user CPU time used by the current process so far. 12 func getRTime() (tSys, tUsr float64) { 13 var creationTime, exitTime, kernelTime, userTime syscall.Filetime 14 hProcess, _ := syscall.GetCurrentProcess() 15 if err := syscall.GetProcessTimes(hProcess, &creationTime, &exitTime, &kernelTime, &userTime); err != nil { 16 log.Error("Couldn't get rusage time:", err) 17 return -1, -1 18 } 19 20 sys := int64(kernelTime.HighDateTime)<<32 + int64(kernelTime.LowDateTime) 21 usr := int64(userTime.HighDateTime)<<32 + int64(userTime.LowDateTime) 22 return (float64(sys) / 10000000.0), (float64(usr) / 10000000.0) 23 }