> 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