Skip to content

Commit bcb4c1d

Browse files
committed
signal handler
1 parent bcd5760 commit bcb4c1d

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/textual/drivers/web_driver.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@
1515
import json
1616
import os
1717
import selectors
18+
import signal
1819
import sys
1920
from codecs import getincrementaldecoder
2021
from functools import partial
2122
from threading import Event, Thread
2223

23-
from .. import events, log
24+
from .. import events, log, messages
2425
from .._xterm_parser import XTermParser
2526
from ..app import App
2627
from ..driver import Driver
@@ -88,6 +89,15 @@ def start_application_mode(self) -> None:
8889

8990
loop = asyncio.get_running_loop()
9091

92+
def do_exit() -> None:
93+
"""Callback to force exit."""
94+
asyncio.run_coroutine_threadsafe(
95+
self._app._post_message(messages.ExitApp()), loop=loop
96+
)
97+
98+
for _signal in (signal.SIGINT, signal.SIGTERM):
99+
loop.add_signal_handler(_signal, do_exit)
100+
91101
self.write("\x1b[?1049h") # Alt screen
92102
self._enable_mouse_support()
93103

0 commit comments

Comments
 (0)