Hi,

For future reference: we discussed this question on IRC yesterday, Feb
4th (see logs).  Let me repeat here the main answer: the JIT works
well because you're using a scheme where some counter is decremented
(and the soft-thread interrupted when it reaches zero) only once in
each app-level loop.  The soft-thread switch is done by returning to
some scheduler, which will resume a different soft-thread by calling
it.  It means the JIT can still compile each of the loops as usual,
with the generated machine code containing the
decrease-and-check-for-zero operation which, when true, exits the
assembler.


A bientôt,

Armin.
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to