sigpending() incorrectly returns signals pending on other threads

Houder houder@xs4all.nl
Mon Jul 15 09:54:00 GMT 2019


On Mon, 15 Jul 2019 09:53:27, Corinna Vinschen  wrote:

> On Jul 14 15:19, Houder wrote:

> > .. uhm, just a note in the interest of accuracy ...
> >
> >  - standard signals (which include USRSIG1 and USRSIG2) are not queued
> >    (traditional signal semantics)
> >  - only real-time signals should be queued ...
> 
> I think queing here means just what you outline above.  It's kind of a
> queue of pending signals and in Cygwin it's actually literally a queue.

> It's >>> a kind of _queue_ <<< of pending signals ...

Not a Q if it would mean that a specific signal can be inserted more than
once in this Q ...

I am fully aware that you know all about Unix/Linux, but

    for the sake of clarity:

20.12 (Signals are not queued) of LPI

    "The set of pending signals is only a "mask"; it indicates whether or
     not a signal has occurred, but NOT how many times it has occurred. In
     other words, if the same signal is generated multiple times while it
     is blocked, then it is recorded in the set of pending signals, and
     later delivered, just ONCE. (One of the differences between standard
     and realtime signals is that realtime signals are queued, as discussed
     in Section 22.8.)

     Listing 20-6 and Listing 20-7 show two programs that can be used to
     observe that signals are not queued. ... "

Meaning the queue in Cygwin is not really a Q ...

Regards,
Henri


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



More information about the Cygwin mailing list