From 12d2ff4f018c826c750896e8085cd53a589a8521 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 3 Sep 2010 14:17:12 -0700 Subject: 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. --- pym/portage/exception.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'pym/portage/exception.py') 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""" -- cgit v1.2.3-1-g7c22