summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2016-02-03 22:42:17 -0800
committerGiampaolo Rodola <g.rodola@gmail.com>2016-02-03 22:42:17 -0800
commit1c02e2d147cfa5fd3ec32a0fc8035f237f505d42 (patch)
tree63add9d45cc5e5b653af10ba88fe1d5246c9cb21
parent576633249bbb2c79b7ea125019d311ce19440386 (diff)
downloadpsutil-1c02e2d147cfa5fd3ec32a0fc8035f237f505d42.tar.gz
windows: set uss to 0 in case of permission error
-rw-r--r--psutil/_pswindows.py20
1 files changed, 13 insertions, 7 deletions
diff --git a/psutil/_pswindows.py b/psutil/_pswindows.py
index 4403e5eb..d12aceb6 100644
--- a/psutil/_pswindows.py
+++ b/psutil/_pswindows.py
@@ -359,16 +359,20 @@ class Process(object):
def _get_raw_meminfo(self):
try:
- info = cext.proc_memory_info(self.pid)
- uss = cext.proc_memory_uss(self.pid)
- return info + (uss,)
+ return cext.proc_memory_info(self.pid)
except OSError as err:
if err.errno in ACCESS_DENIED_SET:
# TODO: the C ext can probably be refactored in order
# to get this from cext.proc_info()
- info = cext.proc_memory_info_2(self.pid)
- uss = cext.proc_memory_uss(self.pid)
- return info + (uss,)
+ return cext.proc_memory_info_2(self.pid)
+ raise
+
+ def _get_uss_mem(self):
+ try:
+ return cext.proc_memory_uss(self.pid)
+ except OSError as err:
+ if err.errno in ACCESS_DENIED_SET:
+ return 0
raise
@wrap_exceptions
@@ -382,7 +386,9 @@ class Process(object):
@wrap_exceptions
def memory_info_ex(self):
- return pextmem(*self._get_raw_meminfo())
+ info = self._get_raw_meminfo()
+ uss = self._get_uss_mem()
+ return pextmem(*info + (uss, ))
def memory_maps(self):
try: