misc: dump threads on SIGINT
This commit is contained in:
parent
c38d10a654
commit
fe0ab16cc8
|
@ -22,11 +22,17 @@ from __future__ import absolute_import, division, print_function, unicode_litera
|
||||||
|
|
||||||
import importlib
|
import importlib
|
||||||
|
|
||||||
|
from logging import INFO as _INFO
|
||||||
|
from logging import getLogger
|
||||||
|
|
||||||
import solaar.cli as _cli
|
import solaar.cli as _cli
|
||||||
import solaar.i18n as _i18n
|
import solaar.i18n as _i18n
|
||||||
|
|
||||||
from solaar import NAME, __version__
|
from solaar import NAME, __version__
|
||||||
|
|
||||||
|
_log = getLogger(__name__)
|
||||||
|
del getLogger
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -100,12 +106,26 @@ def _parse_arguments():
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
|
||||||
|
# On first SIGINT, dump threads to stderr; on second, exit
|
||||||
|
def _handlesigint(signal, stack):
|
||||||
|
import signal
|
||||||
|
import sys
|
||||||
|
import faulthandler
|
||||||
|
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||||
|
|
||||||
|
if _log.isEnabledFor(_INFO):
|
||||||
|
faulthandler.dump_traceback()
|
||||||
|
|
||||||
|
sys.exit('%s: exit due to keyboard interrupt' % (NAME.lower()))
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
_require('pyudev', 'python3-pyudev')
|
_require('pyudev', 'python3-pyudev')
|
||||||
|
|
||||||
# handle ^C in console
|
# handle ^C in console
|
||||||
import signal
|
import signal
|
||||||
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||||
|
signal.signal(signal.SIGINT, _handlesigint)
|
||||||
|
|
||||||
args = _parse_arguments()
|
args = _parse_arguments()
|
||||||
if not args:
|
if not args:
|
||||||
|
|
Loading…
Reference in New Issue