mirror of https://github.com/python/cpython
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:
parent
0c6d438a17
commit
860c05d9f7
23
Lib/trace.py
23
Lib/trace.py
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue