Commit Graph

5 Commits

Author SHA1 Message Date
ad
f87898b1c5 Signal masks are thread private, and there is no guarantee of the order in
which the two signal handlers in this test will execute, at least not beyond
SIGUSR1 being caught first, and SIGUSR2 being caught after that. One way
that it can fail erroneously is:

    2    kill(getpid(), SIGUSR1)
    2    Receive signal SIGUSR1
    2    kill(getpid(), SIGUSR2)
    1    Receive signal SIGUSR2
    1    Exit handler
    2    Exit handler

So if the handlers appear not to have run in sequence, at least verify
that they were run by different threads.
2006-12-26 20:29:03 +00:00
drochner
4b58be0197 rely a bit less on undocumented behaviour: we don't know which thread
the signal is delivered to, and we can't be sure it is delivered
synchonously
(without that sleep(), the test fails also on Linux)
2005-08-29 18:49:14 +00:00
he
dc60e3b6f4 sig_atomic_t isn't necessarily compatible with the %d printf format,
so cast to int before printing.  The value appears to be either 1 or 2,
so no information should be lost this way.
2005-03-05 14:34:29 +00:00
nathanw
5394d17172 Add a second flag to indicate whether handler2 ran at all. 2005-02-26 20:12:58 +00:00
nathanw
17b913020a Test for proper sigmask handling in a signal handler with threads running. 2005-02-26 20:08:14 +00:00