freebsd-dev/lib/libpthread
David Xu 5321c2a9b0 Check pending signals, if there is signal will be unblocked by
sigsuspend, thread shouldn't wait, in old code, it may be
ignored.
When a signal handler is invoked in sigsuspend, thread gets
two different signal masks, one is in thread structure,
sigprocmask() can retrieve it, another is in ucontext
which is a third parameter of signal handler, the former is
the result of sigsuspend mask ORed with sigaction's sa_mask
and current signal, the later is the mask in thread structure
before sigsuspend is called. After signal handler is called,
the mask in ucontext should be copied into thread structure,
and becomes CURRENT signal mask, then sigsuspend returns to
user code.

Reviewed by: deischen
Tested by: Sean McNeil <sean@mcneil.com>
2004-06-12 07:40:01 +00:00
..
arch Avoid clobbering the red zone when running on the new context's stack in 2004-06-07 21:25:16 +00:00
support The caller is expected to set up PIC register corectly before 2003-09-05 18:08:19 +00:00
sys Add the ability to reinitialize libpthread's internal FIFO-queueing 2003-11-04 20:01:38 +00:00
test libkse was renamed to libpthread. 2004-02-05 02:55:20 +00:00
thread Check pending signals, if there is signal will be unblocked by 2004-06-12 07:40:01 +00:00
Makefile Now that libpthread is the default threading library, remove the 2004-01-31 05:05:45 +00:00
pthread.map Add sem_timedwait to the symbol map, otherwise the libc version will 2004-02-10 05:36:09 +00:00