On Tue, 17 Nov 2009 at 10:31, Greg Hewgill wrote:
I've constructed an example program that does not leak memory in Python
2.x, but causes unbounded memory allocation in Python 3.1. Here is the
code:
import gc
import sys
class E(Exception):
def __init__(self, fn):
self.fn = fn
def call(self):
self.fn()
def f():
raise E(f)
a = E(f)
while True:
print(len(gc.get_objects()))
try:
a.call()
except E:
# get exception value in a python2/3 portable way
a = sys.exc_info()[1]
Every time through the loop, the length of gc.get_objects() increases
by 7 under Python 3.1. I believe this is a regression error, since
Python 2.x does not exhibit the same behaviour.
Can anybody confirm this?
I think you want to take a look at PEP 3134. And then please file a doc
bug to have someone update the documentation of sys.exc_info, since the
advice in the warning box is no longer valid in Python 3.
--David (RDM)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com