bpo-34171: Prevent creating Lib/trace.cover when run the trace module. (GH-8841)
(cherry picked from commit c406d5cd74002964a64c3eb7d9e2445a7fd3a03f)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
diff --git a/Lib/trace.py b/Lib/trace.py
index 16c3494..86b2101 100755
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -63,14 +63,6 @@
import threading
-def _settrace(func):
- threading.settrace(func)
- sys.settrace(func)
-
-def _unsettrace():
- sys.settrace(None)
- threading.settrace(None)
-
PRAGMA_NOCOVER = "#pragma NO COVER"
class _Ignore:
@@ -451,12 +443,14 @@
if globals is None: globals = {}
if locals is None: locals = {}
if not self.donothing:
- _settrace(self.globaltrace)
+ threading.settrace(self.globaltrace)
+ sys.settrace(self.globaltrace)
try:
exec(cmd, globals, locals)
finally:
if not self.donothing:
- _unsettrace()
+ sys.settrace(None)
+ threading.settrace(None)
def runfunc(self, func, *args, **kw):
result = None