Merged revisions 86229 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r86229 | alexander.belopolsky | 2010-11-05 21:31:16 -0400 (Fri, 05 Nov 2010) | 1 line

  Issue #10330: trace module can now be used with python built without threads.
........
This commit is contained in:
Alexander Belopolsky 2010-11-06 01:38:48 +00:00
parent 0c6d438a17
commit 860c05d9f7
1 changed files with 18 additions and 5 deletions

View File

@ -52,7 +52,6 @@ import linecache
import os import os
import re import re
import sys import sys
import threading
import time import time
import token import token
import tokenize import tokenize
@ -65,6 +64,22 @@ try:
except ImportError: except ImportError:
import pickle import pickle
try:
import threading
except ImportError:
_settrace = sys.settrace
def _unsettrace():
sys.settrace(None)
else:
def _settrace(func):
threading.settrace(func)
sys.settrace(func)
def _unsettrace():
sys.settrace(None)
threading.settrace(None)
def usage(outfile): def usage(outfile):
outfile.write("""Usage: %s [OPTIONS] <file> [ARGS] outfile.write("""Usage: %s [OPTIONS] <file> [ARGS]
@ -501,14 +516,12 @@ class Trace:
if globals is None: globals = {} if globals is None: globals = {}
if locals is None: locals = {} if locals is None: locals = {}
if not self.donothing: if not self.donothing:
threading.settrace(self.globaltrace) _settrace(self.globaltrace)
sys.settrace(self.globaltrace)
try: try:
exec cmd in globals, locals exec cmd in globals, locals
finally: finally:
if not self.donothing: if not self.donothing:
sys.settrace(None) _unsettrace()
threading.settrace(None)
def runfunc(self, func, *args, **kw): def runfunc(self, func, *args, **kw):
result = None result = None