[Python-checkins] r86233 - in python/branches/release27-maint: Lib/trace.py

alexander.belopolsky python-checkins at python.org
Sat Nov 6 02:38:48 CET 2010


Author: alexander.belopolsky
Date: Sat Nov 6 02:38:48 2010
New Revision: 86233
Log:
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 (2010年11月05日) | 1 line
 
 Issue #10330: trace module can now be used with python built without threads.
........
Modified:
 python/branches/release27-maint/ (props changed)
 python/branches/release27-maint/Lib/trace.py
Modified: python/branches/release27-maint/Lib/trace.py
==============================================================================
--- python/branches/release27-maint/Lib/trace.py	(original)
+++ python/branches/release27-maint/Lib/trace.py	Sat Nov 6 02:38:48 2010
@@ -52,7 +52,6 @@
 import os
 import re
 import sys
-import threading
 import time
 import token
 import tokenize
@@ -65,6 +64,22 @@
 except ImportError:
 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]
 
@@ -501,14 +516,12 @@
 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 in globals, locals
 finally:
 if not self.donothing:
- sys.settrace(None)
- threading.settrace(None)
+ _unsettrace()
 
 def runfunc(self, func, *args, **kw):
 result = None


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /