Add `.cancel()` log around `_async_main()` KBI-exit
parent
f2ae3b0e2e
commit
4398481591
|
@ -181,7 +181,14 @@ async def _async_main(
|
||||||
):
|
):
|
||||||
# remove startup status text
|
# remove startup status text
|
||||||
starting_done()
|
starting_done()
|
||||||
await trio.sleep_forever()
|
try:
|
||||||
|
await trio.sleep_forever()
|
||||||
|
except KeyboardInterrupt as _kbi:
|
||||||
|
log.cancel(
|
||||||
|
f'User canceled Qt app.\n'
|
||||||
|
f'{_kbi!r}'
|
||||||
|
)
|
||||||
|
raise _kbi
|
||||||
|
|
||||||
|
|
||||||
def _main(
|
def _main(
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# piker: trading gear for hackers
|
# piker: trading gear for hackers
|
||||||
# Copyright (C) Tyler Goodlet (in stewardship for piker0)
|
# Copyright (C) Tyler Goodlet (in stewardship for pikers)
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as published by
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
|
|
@ -217,8 +217,14 @@ class MainWindow(QMainWindow):
|
||||||
'''Cancel the root actor asap.
|
'''Cancel the root actor asap.
|
||||||
|
|
||||||
'''
|
'''
|
||||||
# raising KBI seems to get intercepted by by Qt so just use the system.
|
# raising a KBI seems to get intercepted by Qt, soo just use OS ??
|
||||||
os.kill(os.getpid(), signal.SIGINT)
|
# TODO XXX! seems to sometimes cause Qt core dumps if you
|
||||||
|
# cancel during chart bootup..?
|
||||||
|
# -[ ] find a better/more-correct cancellation API in Qt?
|
||||||
|
os.kill(
|
||||||
|
os.getpid(),
|
||||||
|
signal.SIGINT,
|
||||||
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def status_bar(self) -> QStatusBar:
|
def status_bar(self) -> QStatusBar:
|
||||||
|
|
Loading…
Reference in New Issue