:A second mailboxed signal with a different number. Eg: you make a
:syscall, the syscall returns EINTR and you go to check what's on
:the mailbox, but before being able to read what's on the mailbox
:an other signal gets delivered, so when you actually want to
:look at the mailbox you would be reading the second signal instead
:of the first one.

    Each signal can specify a different mailbox.  If you specify a single
    mailbox for multiple signals they simply overwrite each other... but
    in that case the user software is expected to simply check for a non-zero
    value and poll both.

    I considered making the mailbox a bitmap but it's very expensive to do
    an atomic read-modify-write (and userland would have to do an atomic
    read-modify-clear), and also expensive for userland to have to test
    multiple memory words instead of just a single 'int'.

    I don't think its important to try to distinguish them when the mailbox
    is shared, simply because using a mailbox in the first place implies
    a (mostly) polled environment, and there are really only a few signals
    for which this sort of situation applies.

                                        -Matt
                                        Matthew Dillon 
                                        <[EMAIL PROTECTED]>

Reply via email to