> > This is the wrong assumption. If you don't care about the call stack, 
> > how can you expect the [sig]longjmp can successfully unwind stack?
> > The caller may have a malloc memory block, 
> 
> Irrelevant with a GC.

Are you serious? Do you mean I can not use malloc in my C code?

> > or have entered a mutex,
> 
> If they're holding a mutex over a function call without a
> _really_ good reason, it's their own fault.

If you don't care about caller, why the caller cares about you?
Why the callers need to present their reason for locking a
mutex? You ask too much.

> > or acquire the file lock of Perl cvs directory. You
> > probably have
> > to call Dan or Simon for the last case.
> > 
> > > The alternative is that _every_ function simply return
> > a status, which
> > > is fundamentally expensive (your real retval has to be
> > an out
> > > parameter, to start with).
> > 
> > This is the only right solution generally. If you really
> > really really
> > know everything between setjmp and longjmp, you can use
> > it. However,
> > the chance is very low.
> 
> It is also slow, and speed is priority #1.

If so, just use C, which does not check nothing.

> Signals are an event, and so don't need jumps. Under MT,
> it's not like there would be a lot of contention for
> PAR_jump_lock.

Show me how to convert SIGSEGV to event. Please read previous
messages. Some signals are events, some are not.

Hong

Reply via email to