summaryrefslogtreecommitdiffstats
path: root/pym/portage/exception.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-09-03 14:17:12 -0700
committerZac Medico <zmedico@gentoo.org>2010-09-03 14:17:12 -0700
commit12d2ff4f018c826c750896e8085cd53a589a8521 (patch)
treea065800cd53b724709a1698cf84fe2c892ce8c53 /pym/portage/exception.py
parentd0204abde7fef329e45f0db78b3e7cff8fca0465 (diff)
downloadportage-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/portage/exception.py')
-rw-r--r--pym/portage/exception.py14
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"""