Subject: Re: port better to POSIX hosts lacking _setjmp

From: Eli Zaretskii <[email-masked]>
Date: Sat, 15 Sep 2012 12:44:24 +0300

> Date: Sat, 15 Sep 2012 01:55:14 -0700
> From: Paul Eggert <[email-masked]>
> CC: [email-masked], [email-masked]
> 
> On 09/15/2012 01:28 AM, Eli Zaretskii wrote:
> > So what was the rationale of turning away from _setjmp
> 
> Some POSIXish hosts lack _setjmp, but have sigsetjmp,

How did those hosts succeed to compile Emacs before your changes, then?

> >> > Messups are trickier, because they involve rare race conditions.
> >> > They can occur if Emacs or a system call has set the signal mask to X,
> >> > but a longjump unexpectedly changes it to Y, where Y is not equal to X.
> > Why is that a messup?
> 
> Because Emacs then continues with the wrong sigmask, which can
> cause signals to be blocked when they shouldn't be.

longjmp restores the environment, including the signal mask, to what
it was when setjmp was called.  How can this restored mask be wrong,
unless it was already wrong when setjmp was called?