delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2000/05/18/14:40:52

Message-Id: <200005181840.OAA25643@delorie.com>
Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-developers-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin-developers/>
List-Post: <mailto:cygwin-developers AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-developers-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs>
Sender: cygwin-developers-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin-developers AT sourceware DOT cygnus DOT com
From: "Parker, Ron" <rdparker AT butlermfg DOT com>
To: "'cygwin-developers AT sourceware DOT cygnus DOT com'"
<cygwin-developers AT sourceware DOT cygnus DOT com>
Subject: sigsetjmp implementation
Date: Thu, 18 May 2000 13:38:18 -0500
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2448.0)

I was trying to keep the ML traffic down, but decided I should open this up
for discussion.  What follows is basically the discussion Chris and I have
had so far.  It is formatted the way it is because I didn't think you wanted
to read a set of idented replies with top and bottom insertions. :)

*Chris*
Yes.  At some point we should implement a sigsetjmp and siglongjmp.

*Ron* 
I am looking into a patch for this.  However, it does not appear that less
uses sigsetjmp.

I also looked at the Linux headers and noticed two defines, __FAVOR_BSD and
USE_BSD.  The first causes setjmp to behave as sigsetjmp(arg, 1) and the
second implements a _setjmp that behaves as sigsetjmp(arg, 0).  Would this
be the desired behavior?

My real question was do we want to:
A. support the BSD functionality of having setjmp preserve the signal mask
with the additional _setjmp call not preserving the signal mask
B. make that optional behavior like the Linux headers
or
C. ignore what BSD does entirely?

At this point I am leaning to the K.I.S.S option, C.  Just implement
sigsetjmp/siglongjmp and leave setjmp/longjmp behavior alone.

*Chris*
This is really a question for cygwin-developers. However, IMO the
implementation should be equivalent to linux.

*Ron*
Since this discussion I have looked into the cygwin/newlib code and found
sigsetjmp and siglongjmp macros.  It looks to me like they should work but I
have not tested them yet.  Does anyone know if they are broken?  

Either way that still leaves the question about setjmp/longjmp.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019