diff options
| author | J08nY | 2017-06-28 14:28:21 +0200 |
|---|---|---|
| committer | J08nY | 2017-08-07 17:39:08 +0200 |
| commit | cc99242654f2bcc11b3a6f124908de4b175c48d4 (patch) | |
| tree | 58652370d33e9f7b0a02926c18c44a131821d27e /src/mailman/bin/master.py | |
| parent | 7afec8975cb2c8fa1c6725176f52e100d396d1c4 (diff) | |
| download | mailman-cc99242654f2bcc11b3a6f124908de4b175c48d4.tar.gz mailman-cc99242654f2bcc11b3a6f124908de4b175c48d4.tar.zst mailman-cc99242654f2bcc11b3a6f124908de4b175c48d4.zip | |
Diffstat (limited to 'src/mailman/bin/master.py')
| -rw-r--r-- | src/mailman/bin/master.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mailman/bin/master.py b/src/mailman/bin/master.py index 0b273d332..a23fb8e0b 100644 --- a/src/mailman/bin/master.py +++ b/src/mailman/bin/master.py @@ -188,6 +188,9 @@ class PIDWatcher: def __init__(self): self._pids = {} + def __contains__(self, pid): + return pid in self._pids.keys() + def __iter__(self): # Safely iterate over all the keys in the dictionary. Because # asynchronous signals are involved, the dictionary's size could @@ -402,6 +405,10 @@ class Loop: except InterruptedError: # pragma: nocover # If the system call got interrupted, just restart it. continue + if pid not in self._kids: + # Not a runner subprocess, maybe a plugin started one + # ignore it + continue # Find out why the subprocess exited by getting the signal # received or exit status. if os.WIFSIGNALED(status): |
