summaryrefslogtreecommitdiff
path: root/psutil/_psutil_osx.c
diff options
context:
space:
mode:
Diffstat (limited to 'psutil/_psutil_osx.c')
-rw-r--r--psutil/_psutil_osx.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/psutil/_psutil_osx.c b/psutil/_psutil_osx.c
index 8c5990ae..87ec495b 100644
--- a/psutil/_psutil_osx.c
+++ b/psutil/_psutil_osx.c
@@ -279,16 +279,23 @@ static PyObject *
psutil_proc_pidtaskinfo_oneshot(PyObject *self, PyObject *args) {
pid_t pid;
struct proc_taskinfo pti;
+ uint64_t total_user;
+ uint64_t total_system;
if (! PyArg_ParseTuple(args, _Py_PARSE_PID, &pid))
return NULL;
if (psutil_proc_pidinfo(pid, PROC_PIDTASKINFO, 0, &pti, sizeof(pti)) <= 0)
return NULL;
+ total_user = pti.pti_total_user * PSUTIL_MACH_TIMEBASE_INFO.numer;
+ total_user /= PSUTIL_MACH_TIMEBASE_INFO.denom;
+ total_system = pti.pti_total_system * PSUTIL_MACH_TIMEBASE_INFO.numer;
+ total_system /= PSUTIL_MACH_TIMEBASE_INFO.denom;
+
return Py_BuildValue(
"(ddKKkkkk)",
- (float)pti.pti_total_user / 1000000000.0, // (float) cpu user time
- (float)pti.pti_total_system / 1000000000.0, // (float) cpu sys time
+ (float)total_user / 1000000000.0, // (float) cpu user time
+ (float)total_system / 1000000000.0, // (float) cpu sys time
// Note about memory: determining other mem stats on macOS is a mess:
// http://www.opensource.apple.com/source/top/top-67/libtop.c?txt
// I just give up.