bpo-38323: Add guard clauses in MultiLoopChildWatcher. (#22756)
This is a trivial refactor in preparation for a fix for bpo-38323.
This commit is contained in:
parent
c590c2338e
commit
66d3b589c4
|
@ -1226,7 +1226,9 @@ class MultiLoopChildWatcher(AbstractChildWatcher):
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
self._callbacks.clear()
|
self._callbacks.clear()
|
||||||
if self._saved_sighandler is not None:
|
if self._saved_sighandler is None:
|
||||||
|
return
|
||||||
|
|
||||||
handler = signal.getsignal(signal.SIGCHLD)
|
handler = signal.getsignal(signal.SIGCHLD)
|
||||||
if handler != self._sig_chld:
|
if handler != self._sig_chld:
|
||||||
logger.warning("SIGCHLD handler was changed by outside code")
|
logger.warning("SIGCHLD handler was changed by outside code")
|
||||||
|
@ -1259,7 +1261,9 @@ class MultiLoopChildWatcher(AbstractChildWatcher):
|
||||||
# The reason to do it here is that attach_loop() is called from
|
# The reason to do it here is that attach_loop() is called from
|
||||||
# unix policy only for the main thread.
|
# unix policy only for the main thread.
|
||||||
# Main thread is required for subscription on SIGCHLD signal
|
# Main thread is required for subscription on SIGCHLD signal
|
||||||
if self._saved_sighandler is None:
|
if self._saved_sighandler is not None:
|
||||||
|
return
|
||||||
|
|
||||||
self._saved_sighandler = signal.signal(signal.SIGCHLD, self._sig_chld)
|
self._saved_sighandler = signal.signal(signal.SIGCHLD, self._sig_chld)
|
||||||
if self._saved_sighandler is None:
|
if self._saved_sighandler is None:
|
||||||
logger.warning("Previous SIGCHLD handler was set by non-Python code, "
|
logger.warning("Previous SIGCHLD handler was set by non-Python code, "
|
||||||
|
|
Loading…
Reference in New Issue