Web lists-archives.com

Re: Signal delivered while blocked (2)




On 2017-08-14 08:03, Houder wrote:
On Fri, 4 Aug 2017 00:44:45, Noah Misch wrote:
--UugvWAfsgieZRqgk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

The attached demonstration program blocks signals (with sigprocmask()) to achieve mutual exclusion between signal handlers. It aborts upon receipt of a blocked signal. On "CYGWIN_NT-10.0 2.7.0(0.306/5/3) 2017-02-12 13:18 x86_64", signals regularly arrive despite being blocked. Essential parts of the program include handling two signal numbers and having handlers run for at least 1-2ms; this problem goes away if I remove one of those attributes. GNU/Linux, AIX, Solaris, and "CYGWIN_NT-6.0 1.7.27(0.271/5/3) 2013-12-09 11:57 i686" never deliver a blocked signal to this program. I think this Cygwin
behavior is non-conforming.

Hi Noah,

I do not think that Cygwin is the problem here; your code is the problem
here, I believe.
[snip]

You cannot use SIG_SETMASK in that context.

You cannot use SIG_SETMASK in that context in the way you do.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple