This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients Mark.Shannon, deleted0524, erik.bray, gregory.p.smith, jdemeyer, ncoghlan, njs, xgdomingo, yselivanov
Date 2017-09-08.14:29:05
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1504880945.27.0.727133030461.issue29988@psf.upfronthosting.co.za>
In-reply-to
Content
Yeah, I was already thinking the lookaside table might be a better idea (similar to co_lnotab replacing the old SET_LINENO opcodes), especially since that would also provide a quick way of introspecting code objects to see if they included any try/finally constructs. The special case was just a quick check to see if the problem was what I thought it was.

That's also a good point regarding __aexit__ (I figured out that was the problem in the sync case, but hadn't realised it also applied to the async case), so I'll restore those tests and opcode updates.

I'm also wondering how far we might be able to get by adjusting the pending signal processing such that we always execute at least one line from a function before checking for pending signals (that should be enough to protect the test's __aexit__, and it would also be enough to get inside a with statement that guarded a function body against signals).
History
Date User Action Args
2017-09-08 14:29:05ncoghlansetrecipients: + ncoghlan, gregory.p.smith, njs, Mark.Shannon, erik.bray, jdemeyer, yselivanov, deleted0524, xgdomingo
2017-09-08 14:29:05ncoghlansetmessageid: <1504880945.27.0.727133030461.issue29988@psf.upfronthosting.co.za>
2017-09-08 14:29:05ncoghlanlinkissue29988 messages
2017-09-08 14:29:05ncoghlancreate