Blocked signals are incorrectly queued/dequeued.

Kazuhiro Fujieda fujieda@jaist.ac.jp
Sat Mar 10 12:42:00 GMT 2001


The test program attached below shows the following behavior on
NT4 Sp6a and the latest Cygwin DLL.
1. Blocked signals are queued.
2. One of them are dequeued when the block is released.
3. Others are dequeued two by two when other signals are triggered.

The following illustrates the output of the program.
HANDLER1
SIGUSR1
(sleep 5sec.)
HANDLER1
SIGUSR1
HANDLER2
SIGUSR2
HANDLER1
SIGUSR1
(sleep 5sec.)
HANDLER1
SIGUSR1
HANDLER2
SIGUSR2
HANDLER1
SIGUSR1
(sleep 5sec.)
...

This behavior isn't compatible with typical UNIX. I believe the
Cygwin DLL shouldn't queue blocked signals and should deliver
only one of them.



More information about the Cygwin-developers mailing list