From: Raymond Hettinger Date: Fri, 29 Jul 2011 06:56:38 +0000 (-0700) Subject: Issue 12514: Use try/finally to assure that timeit restores GC when done. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=55e5e27b748443e41617bbd27c413b6af709df62;p=python Issue 12514: Use try/finally to assure that timeit restores GC when done. --- diff --git a/Lib/timeit.py b/Lib/timeit.py index a095313950..da9e819bc0 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 0958490d6d..bfbbf691ec 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -672,6 +672,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 e3c404fff9..de2cff5112 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.