GNU bug report logs -
#12446
port better to POSIX hosts lacking _setjmp
Previous Next
Reported by: Paul Eggert <eggert <at> cs.ucla.edu>
Date: Fri, 14 Sep 2012 19:47:01 UTC
Severity: normal
Tags: patch
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
Message #40 received at 12446 <at> debbugs.gnu.org (full text, mbox):
> Date: Sat, 15 Sep 2012 01:55:14 -0700
> From: Paul Eggert <eggert <at> cs.ucla.edu>
> CC: 12446 <at> debbugs.gnu.org, lekktu <at> gmail.com
>
> 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?
This bug report was last modified 12 years and 255 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.