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.

Reply via email to