Modify the remote stack viewer to work in the threaded subprocess.

M PyShell.py
M run.py
This commit is contained in:
Kurt B. Kaiser 2003-06-02 01:50:19 +00:00
parent 5da131b2df
commit 9f36609720
2 changed files with 26 additions and 3 deletions

View file

@ -357,6 +357,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
self.rpcclt.register("stderr", self.tkconsole.stderr)
self.rpcclt.register("flist", self.tkconsole.flist)
self.rpcclt.register("linecache", linecache)
self.rpcclt.register("interp", self)
self.transfer_path()
self.poll_subprocess()
@ -480,6 +481,19 @@ class ModifiedInterpreter(InteractiveInterpreter):
def getdebugger(self):
return self.debugger
def open_remote_stack_viewer(self):
"""Initiate the remote stack viewer from a separate thread.
This method is called from the subprocess, and by returning from this
method we allow the subprocess to unblock. After a bit the shell
requests the subprocess to open the remote stack viewer which returns a
static object looking at the last exceptiopn. It is queried through
the RPC mechanism.
"""
self.tkconsole.text.after(300, self.remote_stack_viewer)
return
def remote_stack_viewer(self):
import RemoteObjectBrowser
oid = self.rpcclt.remotequeue("exec", "stackviewer", ("flist",), {})