bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#12446: port better to POSIX hosts lacking _setjmp


From: Eli Zaretskii
Subject: bug#12446: port better to POSIX hosts lacking _setjmp
Date: Sat, 15 Sep 2012 11:28:19 +0300

> Date: Sat, 15 Sep 2012 00:50:17 -0700
> From: Paul Eggert <eggert@cs.ucla.edu>
> CC: 12446@debbugs.gnu.org, lekktu@gmail.com
> 
> On 09/15/2012 12:12 AM, Eli Zaretskii wrote:
> > On which platforms does longjmp change the signal
> > mask and how, and in what ways can this "mess things up and slow
> > things down"?
> 
> For example, under FreeBSD, setjmp saves the signal mask,
> and longjmp restores the signal mask to the value that it had
> when setjmp was called.  See
> <http://www.freebsd.org/cgi/man.cgi?query=setjmp&manpath=FreeBSD+9.0-RELEASE>.
> FreeBSD is not alone in this -- it's sort of a BSD tradition --
> but I don't have a list handy of exactly which OSes do it and
> which do not.

So what was the rationale of turning away from _setjmp, which does the
same as sigsetjmp with its second argument zero?

> 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?





reply via email to

[Prev in Thread] Current Thread [Next in Thread]