Go to the latest version of this document.

# ``twisted`.`internet`.`_signals`.`_ChildSignalHandling``

class documentation

`class _ChildSignalHandling: (source)`

View In Hierarchy

Signal handling behavior which supports SIGCHLD for notification about changes to child process state.

Method | `install` | Extend the basic signal handling logic to also support handling SIGCHLD to know when to try to reap child processes.
Method | `uninstall` | If a child waker was created and installed, uninstall it now.
Class Variable | `_addInternalReader` | Undocumented
Class Variable | `_removeInternalReader` | Undocumented
Instance Variable | `_childWaker` | `None` or a reference to the `_SIGCHLDWaker` which is used to properly notice child process termination. This is `None` when this handling behavior is not installed and non-`None` otherwise. This is mostly an unfortunate implementation detail due to ...

def install(self): (source)

Extend the basic signal handling logic to also support handling SIGCHLD to know when to try to reap child processes.

def uninstall(self): (source)

If a child waker was created and installed, uninstall it now.

Since this disables reactor functionality and is only called when the reactor is stopping, it doesn't provide any directly useful functionality, but the cleanup of reactor-related process-global state that it does helps in unit tests involving multiple reactors and is generally just a nice thing.

_addInternalReader: `Callable[[IReadDescriptor], object]` = (source)

Undocumented

_removeInternalReader: `Callable[[IReadDescriptor], object]` = (source)

Undocumented

_childWaker: `_SIGCHLDWaker | None` = (source)

`None` or a reference to the `_SIGCHLDWaker` which is used to properly notice child process termination. This is `None` when this handling behavior is not installed and non-`None` otherwise. This is mostly an unfortunate implementation detail due to `_SIGCHLDWaker` allocating file descriptors as a side-effect of its initializer.