summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2019-06-26 22:46:45 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2019-06-26 22:46:45 +0200
commit0c41d9f765d2d80680e0a15eed1007b034531ece (patch)
tree0d7e66bb23d38a97eab1c250ed975f90b27dd2bc
parent46b9a51f3125ddbc79eb088c68a33a52f5c86080 (diff)
downloadpsutil-0c41d9f765d2d80680e0a15eed1007b034531ece.tar.gz
port sunos
-rw-r--r--psutil/_pssunos.py50
1 files changed, 23 insertions, 27 deletions
diff --git a/psutil/_pssunos.py b/psutil/_pssunos.py
index 07298a73..2aa2a866 100644
--- a/psutil/_pssunos.py
+++ b/psutil/_pssunos.py
@@ -25,6 +25,9 @@ from ._common import sockfam_to_enum
from ._common import socktype_to_enum
from ._common import usage_percent
from ._compat import b
+from ._compat import FileNotFoundError
+from ._compat import PermissionError
+from ._compat import ProcessLookupError
from ._compat import PY3
@@ -342,22 +345,22 @@ def wrap_exceptions(fun):
def wrapper(self, *args, **kwargs):
try:
return fun(self, *args, **kwargs)
- except EnvironmentError as err:
+ except (FileNotFoundError, ProcessLookupError):
+ # ENOENT (no such file or directory) gets raised on open().
+ # ESRCH (no such process) can get raised on read() if
+ # process is gone in meantime.
+ if not pid_exists(self.pid):
+ raise NoSuchProcess(self.pid, self._name)
+ else:
+ raise ZombieProcess(self.pid, self._name, self._ppid)
+ except PermissionError:
+ raise AccessDenied(self.pid, self._name)
+ except OSError:
if self.pid == 0:
if 0 in pids():
raise AccessDenied(self.pid, self._name)
else:
raise
- # ENOENT (no such file or directory) gets raised on open().
- # ESRCH (no such process) can get raised on read() if
- # process is gone in meantime.
- if err.errno in (errno.ENOENT, errno.ESRCH):
- if not pid_exists(self.pid):
- raise NoSuchProcess(self.pid, self._name)
- else:
- raise ZombieProcess(self.pid, self._name, self._ppid)
- if err.errno in (errno.EPERM, errno.EACCES):
- raise AccessDenied(self.pid, self._name)
raise
return wrapper
@@ -515,11 +518,9 @@ class Process(object):
try:
return os.readlink(
'%s/%d/path/%d' % (procfs_path, self.pid, x))
- except OSError as err:
- if err.errno == errno.ENOENT:
- hit_enoent = True
- continue
- raise
+ except FileNotFoundError:
+ hit_enoent = True
+ continue
if hit_enoent:
self._assert_alive()
@@ -532,11 +533,9 @@ class Process(object):
procfs_path = self._procfs_path
try:
return os.readlink("%s/%s/path/cwd" % (procfs_path, self.pid))
- except OSError as err:
- if err.errno == errno.ENOENT:
- os.stat("%s/%s" % (procfs_path, self.pid)) # raise NSP or AD
- return None
- raise
+ except FileNotFoundError:
+ os.stat("%s/%s" % (procfs_path, self.pid)) # raise NSP or AD
+ return None
@wrap_exceptions
def memory_info(self):
@@ -597,12 +596,9 @@ class Process(object):
if os.path.islink(path):
try:
file = os.readlink(path)
- except OSError as err:
- # ENOENT == file which is gone in the meantime
- if err.errno == errno.ENOENT:
- hit_enoent = True
- continue
- raise
+ except FileNotFoundError:
+ hit_enoent = True
+ continue
else:
if isfile_strict(file):
retlist.append(_common.popenfile(file, int(fd)))