From 55e5e27b748443e41617bbd27c413b6af709df62 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Thu, 28 Jul 2011 23:56:38 -0700 Subject: [PATCH] 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 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. -- 2.50.1