Skip to content

add_signal_handler support for all platforms #137863

@erwinkramer

Description

@erwinkramer

Feature or enhancement

Proposal:

I'm currently writing this to support signals on Windows and Linux:

loop = asyncio.get_running_loop()

def shutdown(*args):
    // some shutdown sequence

if sys.platform == "win32":
    for sig in (signal.SIGINT, signal.SIGTERM):
        signal.signal(sig, shutdown)
else:
    for sig in (signal.SIGINT, signal.SIGTERM):
        loop.add_signal_handler(sig, shutdown)

Works great, but why would signal.signal be supported on Linux and Windows, but asyncio's AbstractEventLoop via add_signal_handler only on Linux? Can't this be platform agnostic?

add_signal_handler would raise the following on Windows:

[...]\Python\Python313\Lib\asyncio\events.py", line 596, in add_signal_handler
    raise NotImplementedError

Has this already been discussed elsewhere?

No response given

Links to previous discussion of this feature:

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions