diff options
Diffstat (limited to 'src/mailman/interfaces/runner.py')
| -rw-r--r-- | src/mailman/interfaces/runner.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mailman/interfaces/runner.py b/src/mailman/interfaces/runner.py index 12a7e49ad..f85c759c1 100644 --- a/src/mailman/interfaces/runner.py +++ b/src/mailman/interfaces/runner.py @@ -34,6 +34,19 @@ class RunnerCrashEvent: @public +class RunnerInterrupt(Exception): + """A runner received a system call interrupting signal. + + PEP 475 automatically, and at the C layer, retries system calls such as + time.sleep(). This can mean runners with long sleeps in their _snooze() + method won't actually exit. This exception is always raised in Mailman's + runner signal handlers to prevent this behavior. Runners that implement + their own .run() method must be prepared to handle this, usually by + ignoring it. + """ + + +@public class IRunner(Interface): """The runner.""" |
