summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2020-02-13 13:45:42 -0800
committerGiampaolo Rodola <g.rodola@gmail.com>2020-02-13 13:45:42 -0800
commit57367dca114e8224134830ca9b702aa666229b6e (patch)
treec495ad2ab868a934b218a8010c1c5243e4c7df60
parent2b28c332f3bfbb4744d6f7de3d10e2bdf27a4570 (diff)
downloadpsutil-57367dca114e8224134830ca9b702aa666229b6e.tar.gz
bind cpu_times() and create_time() with oneshot()
-rw-r--r--psutil/_pswindows.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/psutil/_pswindows.py b/psutil/_pswindows.py
index e9aaeed3..1917a862 100644
--- a/psutil/_pswindows.py
+++ b/psutil/_pswindows.py
@@ -722,10 +722,12 @@ class Process(object):
def oneshot_enter(self):
self._proc_info.cache_activate(self)
+ self._proc_times.cache_activate(self)
self.exe.cache_activate(self)
def oneshot_exit(self):
self._proc_info.cache_deactivate(self)
+ self._proc_times.cache_deactivate(self)
self.exe.cache_deactivate(self)
@memoize_when_activated
@@ -737,6 +739,11 @@ class Process(object):
assert len(ret) == len(pinfo_map)
return ret
+ @memoize_when_activated
+ def _proc_times(self):
+ user, system, created = cext.proc_times(self.pid)
+ return (user, system, created)
+
def name(self):
"""Return process name, which on Windows is always the final
part of the executable.
@@ -928,7 +935,7 @@ class Process(object):
@wrap_exceptions
def create_time(self):
try:
- user, kernel, created = cext.proc_times(self.pid)
+ user, kernel, created = self._proc_times()
return created
except OSError as err:
if is_permission_err(err):
@@ -951,7 +958,7 @@ class Process(object):
@wrap_exceptions
def cpu_times(self):
try:
- user, system, created = cext.proc_times(self.pid)
+ user, system, created = self._proc_times()
except OSError as err:
if not is_permission_err(err):
raise