develooper Front page | perl.perl5.porters | Postings from January 2001

Re: Does perl really need to use sigsetjmp? (18% performance hit)

Thread Previous | Thread Next
From:
Mark Mielke
Date:
January 9, 2001 10:22
Subject:
Re: Does perl really need to use sigsetjmp? (18% performance hit)
Message ID:
20010109131747.A18051@pcard12x.ca.nortel.com
On Tue, Jan 09, 2001 at 02:20:57PM +0000, "Alan Burlison" wrote:
> No, I think you are right.  However the whole
> signal/eval/die/setjmp/longjmp mess is pretty much broken anyway, what
> with the non-MT safeness and the current bizzare behaviour illustrated 
> by Raphaels test script.

It seems, from the conversation here, that an assumption I've made about
the Perl implementation is incorrect. (It wouldn't be the first time)

Why is a sigsetjump() needed at _all_ except for eval{} blocks?

Is it too much housekeeping to have the sigsetjump() know where it was
on the stack at a given time and backtrack all contained blocks to
perform cleanup (for blocks that were exitted via the longjmp()), with
normal "end of block" opcodes cleaning up for themselves?

TCL, for instance, doesn't use setjump() at all for blocks or loop.

Does it speed up "next", "redo", and "last" operations? Is that why
it does it on every block?

mark

-- 
markm@nortelnetworks.com/mark@mielke.cc/markm@ncf.ca __________________________
.  .  _  ._  . .   .__    .  . ._. .__ .   . . .__  | SIR Tools          (7H12)
|\/| |_| |_| |/    |_     |\/|  |  |_  |   |/  |_   | Nortel Networks
|  | | | | \ | \   |__ .  |  | .|. |__ |__ | \ |__  | Ottawa, Ontario, Canada

  One ring to rule them all, one ring to find them, one ring to bring them all
                       and in the darkness bind them...

                           http://mark.mielke.cc/


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About