Skip to content

Instantly share code, notes, and snippets.

@JoelBender
Created September 19, 2019 22:20
Show Gist options
  • Save JoelBender/0879b78ebc474502ada48870c51a266b to your computer and use it in GitHub Desktop.
Save JoelBender/0879b78ebc474502ada48870c51a266b to your computer and use it in GitHub Desktop.
asyncio signal handler
import sys
import asyncio
import signal
def ctrl_c():
print("hit!")
sys.exit(1)
loop = asyncio.get_event_loop()
loop.add_signal_handler(signal.SIGINT, ctrl_c)
loop.run_forever()
@ChristianTremblay
Copy link

import sys
import asyncio
import signal

def ctrl_c(signumber, frame):
    print('Signal handler called with signal', signumber)
    sys.exit(1)

loop = asyncio.get_event_loop()
try:
    loop.add_signal_handler(signal.SIGINT, ctrl_c)
except NotImplementedError:
    print('Windows !!!')

def wakeup():
    loop.call_later(0.1, wakeup)

try:
    loop.call_later(0.1, wakeup)
    loop.run_forever()
except KeyboardInterrupt:
    ctrl_c(signal.SIGINT, None)

A workaround

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment