This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Signal delivered while blocked


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.

PostgreSQL trouble prompted this report; the demonstration program is based on
the "postmaster" architecture.  postmaster SIGCHLD and SIGUSR1 handlers block
most signals, and they cannot cope with interrupts from blocked signals.

Thanks,
nm

Attachment: sigprocmask-exclusion.c
Description: Text document

Attachment: cygcheck.out
Description: Text document

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]