Issue #10330: trace module can now be used with python built without threads.

This commit is contained in:
Alexander Belopolsky 2010-11-06 01:31:16 +00:00
parent ecd34cbbb8
commit 25b5741383
1 changed files with 18 additions and 5 deletions

View File

@ -53,7 +53,6 @@ import linecache
import os
import re
import sys
import threading
import time
import token
import tokenize
@ -62,6 +61,22 @@ import gc
import dis
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):
outfile.write("""Usage: %s [OPTIONS] <file> [ARGS]
@ -491,14 +506,12 @@ class Trace:
if globals is None: globals = {}
if locals is None: locals = {}
if not self.donothing:
threading.settrace(self.globaltrace)
sys.settrace(self.globaltrace)
_settrace(self.globaltrace)
try:
exec(cmd, globals, locals)
finally:
if not self.donothing:
sys.settrace(None)
threading.settrace(None)
_unsettrace()
def runfunc(self, func, *args, **kw):
result = None