Use thread traceback logger from Pykka 1.1
This commit is contained in:
parent
fc76318f20
commit
c90322f1e2
@ -10,6 +10,10 @@ v0.13.0 (in development)
|
||||
|
||||
(in development)
|
||||
|
||||
**Dependencies**
|
||||
|
||||
- Pykka >= 1.1 is now required.
|
||||
|
||||
**Core**
|
||||
|
||||
- Log a warning if a track isn't playable to make it more obvious that backend
|
||||
|
||||
@ -9,6 +9,8 @@ import sys
|
||||
import gobject
|
||||
gobject.threads_init()
|
||||
|
||||
import pykka.debug
|
||||
|
||||
|
||||
# Extract any non-GStreamer arguments, and leave the GStreamer arguments for
|
||||
# processing by GStreamer. This needs to be done before GStreamer is imported,
|
||||
@ -48,9 +50,7 @@ def main():
|
||||
options = parse_options()
|
||||
|
||||
if options.debug_thread or settings.DEBUG_THREAD:
|
||||
debug_thread = process.DebugThread()
|
||||
debug_thread.start()
|
||||
signal.signal(signal.SIGUSR1, debug_thread.handler)
|
||||
signal.signal(signal.SIGUSR1, pykka.debug.log_thread_tracebacks)
|
||||
|
||||
try:
|
||||
log.setup_logging(options.verbosity_level, options.save_debug_log)
|
||||
|
||||
@ -2,10 +2,8 @@ from __future__ import unicode_literals
|
||||
|
||||
import logging
|
||||
import signal
|
||||
import sys
|
||||
import thread
|
||||
import threading
|
||||
import traceback
|
||||
|
||||
from pykka import ActorDeadError
|
||||
from pykka.registry import ActorRegistry
|
||||
@ -79,29 +77,3 @@ class BaseThread(threading.Thread):
|
||||
|
||||
def run_inside_try(self):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class DebugThread(threading.Thread):
|
||||
daemon = True
|
||||
name = 'DebugThread'
|
||||
|
||||
event = threading.Event()
|
||||
|
||||
def handler(self, signum, frame):
|
||||
logger.info('Got %s signal', SIGNALS[signum])
|
||||
self.event.set()
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
self.event.wait()
|
||||
threads = dict((t.ident, t.name) for t in threading.enumerate())
|
||||
|
||||
for ident, frame in sys._current_frames().items():
|
||||
if self.ident != ident:
|
||||
stack = ''.join(traceback.format_stack(frame))
|
||||
logger.debug(
|
||||
'Current state of %s (%s):\n%s',
|
||||
threads.get(ident, '?'), ident, stack)
|
||||
del frame
|
||||
|
||||
self.event.clear()
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
Pykka >= 1.0
|
||||
Pykka >= 1.1
|
||||
# Available as python-pykka from apt.mopidy.com
|
||||
|
||||
Loading…
Reference in New Issue
Block a user