Yeah doing something else on the main interpreter loop, BEFORE checking the signal flag, is what what I meant.  The &quot;something else&quot; could be long-running C extension code, or a blocking syscall.  (I realize the original signal will interrupt a syscall, but there could be another one after that.)<p>In either case, the signal handler doesn&#x27;t get run for an arbitrary period of time.  And another signal could occur.<p>I didn&#x27;t trace through the code to see how this is handled... but it seems like it is hard to handle simply and correctly (you&#x27;re kind of recapitulating the problems of signals to begin with, in a higher level language).<p>Any docs &#x2F; clarity on this would be interesting to me, as I will probably implement this in my own language soon.