Skip to content

Commit 0e247fd

Browse files
committed
Do not unset/set the tracer/profiler if there's no previous one.
1 parent 64ae56d commit 0e247fd

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/pytest_benchmark/fixture.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ def runner(loops_range, timer=self._timer):
103103
if self._disable_gc:
104104
gc.disable()
105105
prev_tracer = sys.gettrace()
106-
sys.settrace(None)
106+
if prev_tracer:
107+
sys.settrace(None)
107108
try:
108109
if loops_range:
109110
start = timer()
@@ -117,7 +118,8 @@ def runner(loops_range, timer=self._timer):
117118
end = timer()
118119
return end - start, result
119120
finally:
120-
sys.settrace(prev_tracer)
121+
if prev_tracer:
122+
sys.settrace(prev_tracer)
121123
if gc_enabled:
122124
gc.enable()
123125

@@ -212,16 +214,20 @@ def _raw(self, function_to_benchmark, *args, **kwargs):
212214
if self.enabled and self.cprofile:
213215
prev_tracer = sys.gettrace()
214216
prev_profiler = sys.getprofile()
215-
sys.settrace(None)
216-
sys.setprofile(None)
217+
if prev_tracer:
218+
sys.settrace(None)
219+
if prev_profiler:
220+
sys.setprofile(None)
217221
try:
218222
profile = cProfile.Profile()
219223
for _ in cprofile_loops:
220224
function_result = profile.runcall(function_to_benchmark, *args, **kwargs)
221225
self._save_cprofile(profile)
222226
finally:
223-
sys.settrace(prev_tracer)
224-
sys.setprofile(prev_profiler)
227+
if prev_tracer:
228+
sys.settrace(prev_tracer)
229+
if prev_profiler:
230+
sys.setprofile(prev_profiler)
225231
else:
226232
function_result = function_to_benchmark(*args, **kwargs)
227233
return function_result

0 commit comments

Comments
 (0)