Message301721
| Author |
njs |
| Recipients |
Mark.Shannon, deleted0524, erik.bray, gregory.p.smith, jdemeyer, ncoghlan, njs, xgdomingo, yselivanov |
| Date |
2017年09月08日.19:10:28 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1504897828.71.0.0279666872627.issue29988@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Here's the patch I mentioned: https://github.com/njsmith/cpython/commit/62547dc5ea323a07c25c2047636a02241f518013
It has a crude but effective technique for handling the hanging issue :-). Alternatively one could use the World's Stupidest Coroutine Runner:
def run(coro):
try:
coro.send(None)
except StopIteration:
pass
else:
raise RuntimeError("yielded")
> 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
Huh, that's a neat idea. I think it's defeated by 'while True: pass', though :-(. (You have to write it on two lines, but it compiles down to a single instruction that jumps to itself.) |
|