According to the docs, I need to use loop.add_signal_handler() to register a signal handler to interact with the event loop.
Unlike signal handlers registered using
signal.signal(), a callback registered with this function is allowed to interact with the event loop.
Why is this necessary? What is wrong about using the normal signal.signal() to register signals with asyncio?