> I've checked with some Sun folks. My understanding is that if you 
> don't do a list of what I'd consider obviously stupid things like:
> 
> *) longjmp out of the middle of an interrupt handler
> *) longjmp across a system call boundary (user->system->user and the 
> inner jumps to the outer)
> *) Expect POSIX's dead-stupid mutexes to magically unlock
> *) Share jump destinations amongst threads
> *) Use the original Solaris thread implementation in general
> 
> then you should be safe.

I think we have  concluded that we only setup flags inside signal 
handlers. So we don't need sigsetjmp/siglongjmp at all.

> I think we'll be safe using longjmp as a C-level exception handler. 
> I'm right now trying to figure whether it's a good thing to do or 
> not. (I'd like to unify C and Parrot level exceptions if I can)

That is my point. Even if libc does not have thread-safe longjmp, we
can easily make one ourself using assembly code.

Hong

Reply via email to