From 3a081f526d1556129facd38a1bb6a1b8af3abbe7 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Fri, 29 Jul 2011 00:02:04 -0700 Subject: Issue 12514: Use try/finally to assure that timeit restores GC when done. --- Lib/timeit.py | 8 +++++--- Misc/ACKS | 1 + Misc/NEWS | 3 +++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Lib/timeit.py b/Lib/timeit.py index 8e04645..461c891 100644 --- a/Lib/timeit.py +++ b/Lib/timeit.py @@ -191,9 +191,11 @@ class Timer: it = [None] * number gcold = gc.isenabled() gc.disable() - timing = self.inner(it, self.timer) - if gcold: - gc.enable() + try: + timing = self.inner(it, self.timer) + finally: + if gcold: + gc.enable() return timing def repeat(self, repeat=default_repeat, number=default_number): diff --git a/Misc/ACKS b/Misc/ACKS index 4a2c06e..820206a 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -722,6 +722,7 @@ Chris Rebert Marc Recht John Redford Terry Reedy +Gareth Rees Steve Reeves Lennart Regebro Ofir Reichenberg diff --git a/Misc/NEWS b/Misc/NEWS index e7c3a75..0e78bf2 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -39,6 +39,9 @@ Library - Issue #12603: Fix pydoc.synopsis() on files with non-negative st_mtime. +- Issue #12514: Use try/finally to assure the timeit module restores garbage + collections when it is done. + - Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is given as a low fd, it gets overwritten. -- cgit v0.12