def InitSignal(gui):
def signal_action(signal):
if signal.value is signal.SIGINT.value:
print("\r", end="")
logging.debug("Caught signal SIGINT(2)")
gui.stop()
def handler(*args):
signal_action(args[0])
def idle_handler(*args):
GLib.idle_add(signal_action, priority=GLib.PRIORITY_HIGH)
def install_glib_handler(sig):
GLib.unix_signal_add(GLib.PRIORITY_HIGH, sig, handler, sig)
SIGS = [getattr(signal, s, None) for s in "SIGINT".split()]
for sig in filter(None, SIGS):
signal.signal(sig, idle_handler)
GLib.idle_add(install_glib_handler, sig, priority=GLib.PRIORITY_HIGH)
评论列表
文章目录