Message-Id: <200005181840.OAA25643@delorie.com> Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , 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" To: "'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) Content-Type: text/plain; charset="windows-1252" 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.