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