diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-09-03 14:17:12 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-09-03 14:17:12 -0700 |
commit | 12d2ff4f018c826c750896e8085cd53a589a8521 (patch) | |
tree | a065800cd53b724709a1698cf84fe2c892ce8c53 /pym | |
parent | d0204abde7fef329e45f0db78b3e7cff8fca0465 (diff) | |
download | portage-12d2ff4f018c826c750896e8085cd53a589a8521.tar.gz portage-12d2ff4f018c826c750896e8085cd53a589a8521.tar.bz2 portage-12d2ff4f018c826c750896e8085cd53a589a8521.zip |
Bug #335777 - Add a 40 second timeout in ebuild-ipc.py, so that if an
orphan is left for any reason then it will exit with an error message
instead of hanging indefinitely.
Diffstat (limited to 'pym')
-rw-r--r-- | pym/portage/exception.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/pym/portage/exception.py b/pym/portage/exception.py index 9564af98a..b0f9ad8eb 100644 --- a/pym/portage/exception.py +++ b/pym/portage/exception.py @@ -80,6 +80,20 @@ class TryAgain(PortageException): from errno import EAGAIN as errno """Try again""" +class TimeoutException(PortageException): + from errno import ETIME as errno + +class AlarmSignal(TimeoutException): + def __init__(self, value, signum=None, frame=None): + TimeoutException.__init__(self, value) + self.signum = signum + self.frame = frame + + @classmethod + def signal_handler(cls, signum, frame): + raise AlarmSignal("alarm signal", + signum=signum, frame=frame) + class ReadOnlyFileSystem(PortageException): """Read-only file system""" |