New submission from Nick Coghlan <ncogh...@gmail.com>: The current implementation of contextlib.ExitStack [1] actually creates a nested series of frames when unwinding the callback stack in an effort to ensure exceptions are chained correctly, just as they would be if using nested with statements.
It would be nice to avoid this overhead by just using the one frame to iterate over the callbacks and handling correct exception chaining directly. This is likely to be a little tricky to get right, though, so the first step would be to set up a test that throws and suppresses a few exceptions and ensures the chaining when using ExitStack matches that when using nested with statements. [1] http://hg.python.org/cpython/file/94a5bf416e50/Lib/contextlib.py#l227 ---------- components: Library (Lib) messages: 161944 nosy: ncoghlan priority: normal severity: normal stage: test needed status: open title: Use an iterative implementation for contextlib.ExitStack.__exit__ type: enhancement versions: Python 3.3 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue14963> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com