On Sat, 6 Jan 2001 00:45:11 +0000, Simon Cozens wrote:
>No, it's exactly what Perl 5 does.
>
>This is the Perl interpreter:
> while ((PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX))) {
> PERL_ASYNC_CHECK();
> }
>
>The only problem is that right now, PERL_ASYNC_CHECK doesn't actually
>do anything. :)
I don't get it. Does this *have* to give a 3-5% performance hit? Even if
you do it this way (syntax is a Perlish extension to C):
while ((PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX))) {
async_waiting or next;
PERL_ASYNC_PROCESS();
}
BTW I agree with Nicolas Clark's remark (but I don't subscribe to p5p,
so I won't post there either):
>Hmm. No-one produced a patch with 2 loops, 1 for normal use, and 1 when
>%SIG has handlers other than default or ignore assigned to it.
>Would that be an acceptable perl5 compromise?
Since this "event loop" is so tiny, this doesn't even look like much of
a compromise.
Apropos safe signals, isn't it possible to let perl6 handle avoiding
zombie processes internally? What use does having to do wait() yourself,
have anyway?
--
Bart.