SIGURG
sigaddset(&mask, SIGURG);
(void) sigaction(SIGURG, &sa, NULL);
sigaddset (&act.sa_mask, SIGURG);
CHECKe(sigaction (SIGURG, &act, NULL));
CHECKr(pthread_kill (suspender_tid, SIGURG));
CHECKe(kill (getpid (), SIGURG));
ASSERT(sigcounts[SIGURG] == 2);
sigdelset (&suspender_mask, SIGURG); /* ignore */
sigaddset (&wait_mask, SIGURG); /* ignore */
sigaddset (&act.sa_mask, SIGURG);
CHECKe(sigaction (SIGURG, &act, NULL));
CHECKr(pthread_kill (tid, SIGURG));
CHECKe(kill(getpid(), SIGURG));
ASSERT(sigcounts[SIGURG] == 2);
sigaddset(&mask, SIGURG);
signal(SIGURG, signal_handler);
pgsigio(&so->so_sigio, SIGURG, 0);
signal(SIGURG, SIG_IGN);