Move PERL_ASYNC_CHECK() from the runloop to control flow OPs.
authorNicholas Clark <nick@ccl4.org>
Thu, 15 Apr 2010 10:37:53 +0000 (11:37 +0100)
committerNicholas Clark <nick@ccl4.org>
Thu, 15 Apr 2010 10:37:53 +0000 (11:37 +0100)
commitf410a2119920dd04690025a349e79575cfb9c972
treeff2c2f6480e96613f0609b4b959385c90f78bcec
parentd1515be42a17e7bb3fa584aea980f54524603f34
Move PERL_ASYNC_CHECK() from the runloop to control flow OPs.

For the typical code this gives a 5% speedup, and removes the cost of "safe
signals". Tight looping code will show less gains, but should never be slower.

Subtle bugs might remain - there might be constructions that enter the runloop
(where signals used to be dispatched) but don't contain any PERL_ASYNC_CHECK()
calls themselves.
cop.h
dump.c
pp_ctl.c
pp_hot.c
run.c
scope.c