Skip to content

Commit

Permalink
Don't crash when running PuDB from a non-main thread.
Browse files Browse the repository at this point in the history
  • Loading branch information
pvaret committed Jan 4, 2012
1 parent b842f7d commit 7d9226d
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions pudb/debugger.py
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,24 @@ def _runscript(self, filename):
from pudb.var_view import FrameVarInfoKeeper


from urwid.raw_display import Screen

class ThreadsafeScreen(Screen):
"A Screen subclass that doesn't crash when running from a non-main thread."

def signal_init(self):
"Initialize signal handler, ignoring errors silently."
try:
super(ThreadsafeScreen, self).signal_init()
except ValueError:
pass

def signal_restore(self):
"Restore default signal handler, ignoring errors silently."
try:
super(ThreadsafeScreen, self).signal_restore()
except ValueError:
pass


class DebuggerUI(FrameVarInfoKeeper):
Expand Down Expand Up @@ -1097,9 +1115,7 @@ def help(w, size, key):

# {{{ setup

import urwid.raw_display as display

self.screen = display.Screen()
self.screen = ThreadsafeScreen()
self.setup_palette(self.screen)

self.show_count = 0
Expand Down

0 comments on commit 7d9226d

Please sign in to comment.