freebsd-dev/lib/libkse/thread
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
..
Makefile.inc Implement sigaltstack() as per-threaded. Current only scope process thread 2003-12-29 23:21:09 +00:00
thr_accept.c accept() returns a file descriptor when it succeeds which is very 2003-12-09 23:40:27 +00:00
thr_aio_suspend.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_atfork.c Add pthread_atfork() source code. Dan forgot to commit this file. 2003-11-05 03:42:10 +00:00
thr_attr_destroy.c
thr_attr_get_np.c
thr_attr_getdetachstate.c
thr_attr_getguardsize.c
thr_attr_getinheritsched.c
thr_attr_getschedparam.c
thr_attr_getschedpolicy.c
thr_attr_getscope.c
thr_attr_getstack.c
thr_attr_getstackaddr.c
thr_attr_getstacksize.c
thr_attr_init.c
thr_attr_setcreatesuspend_np.c pthread API should return error code in return value not in errno. 2003-09-25 13:53:49 +00:00
thr_attr_setdetachstate.c
thr_attr_setguardsize.c Respect POSIX specification, a value return from pthread_attr_getguardsize 2003-09-14 22:39:44 +00:00
thr_attr_setinheritsched.c Check invalid parameter and return EINVAL. 2003-09-14 22:28:13 +00:00
thr_attr_setschedparam.c
thr_attr_setschedpolicy.c
thr_attr_setscope.c If user is seting scope process flag, clear PTHREAD_SCOPE_SYSTEM bit 2003-09-14 22:32:28 +00:00
thr_attr_setstack.c
thr_attr_setstackaddr.c
thr_attr_setstacksize.c
thr_autoinit.c
thr_barrier.c Add code to support barrier synchronous object and implement 2003-09-04 14:06:43 +00:00
thr_barrierattr.c Add code to support barrier synchronous object and implement 2003-09-04 14:06:43 +00:00
thr_cancel.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_clean.c
thr_close.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_concurrency.c Fixed a misspelling of 0 as NULL. 2004-03-14 05:27:26 +00:00
thr_cond.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_condattr_destroy.c
thr_condattr_init.c
thr_connect.c accept() returns a file descriptor when it succeeds which is very 2003-12-09 23:40:27 +00:00
thr_creat.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_create.c Check pending signals, if there is signal will be unblocked by 2004-06-12 07:40:01 +00:00
thr_detach.c
thr_equal.c
thr_exit.c 1. Allocating and freeing lock related resource in _thr_alloc and _thr_free 2003-09-14 22:52:16 +00:00
thr_fcntl.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_find_thread.c
thr_fork.c Don't declare the malloc lock; use the declaration provided in libc. 2003-11-05 18:18:45 +00:00
thr_fsync.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_getprio.c
thr_getschedparam.c
thr_info.c Print waitset correctly. 2003-09-22 00:40:23 +00:00
thr_init.c Remove surplus mmap() call for stack guard page in init_private, it is done 2003-11-29 14:10:02 +00:00
thr_join.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_kern.c After forking and initializing the library to single-threaded 2004-04-08 23:16:21 +00:00
thr_kill.c
thr_main_np.c
thr_mattr_init.c
thr_mattr_kind_np.c
thr_msync.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_multi_np.c
thr_mutex_prioceiling.c
thr_mutex_protocol.c
thr_mutex.c Return EPERM if mutex owner is not current thread but it tries to 2004-01-17 03:09:57 +00:00
thr_mutexattr_destroy.c
thr_nanosleep.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_once.c Original pthread_once code has memory leak if pthread_once_t is used in 2003-09-09 22:38:12 +00:00
thr_open.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_pause.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_poll.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_printf.c style cleanup: Remove duplicate $FreeBSD$ tags. 2004-02-10 20:42:33 +00:00
thr_priority_queue.c
thr_private.h Check pending signals, if there is signal will be unblocked by 2004-06-12 07:40:01 +00:00
thr_pselect.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_pspinlock.c Libpthread uses the convention that all of its (non-weak) symbols 2003-11-04 19:56:12 +00:00
thr_raise.c
thr_read.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_readv.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_resume_np.c
thr_rtld.c style(9) 2003-11-05 18:19:24 +00:00
thr_rwlock.c Add a simple work-around for deadlocking on recursive read locks 2004-01-08 15:37:09 +00:00
thr_rwlockattr.c
thr_select.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_self.c
thr_sem.c Add cancellation point to sem_wait() and sem_timedwait() for pshared 2004-02-06 15:20:56 +00:00
thr_seterrno.c
thr_setprio.c
thr_setschedparam.c
thr_sig.c Check pending signals, if there is signal will be unblocked by 2004-06-12 07:40:01 +00:00
thr_sigaction.c If syscall failed, restore old sigaction and return error to thread. 2003-09-25 06:23:40 +00:00
thr_sigaltstack.c Return error code in errno, not in return value. 2004-01-02 00:38:42 +00:00
thr_sigmask.c pthread api should return error code in return value, not in errno. 2003-09-18 12:19:28 +00:00
thr_sigpending.c
thr_sigprocmask.c
thr_sigsuspend.c Check pending signals, if there is signal will be unblocked by 2004-06-12 07:40:01 +00:00
thr_sigwait.c Fix a POSIX conformance bug. POSIX says sigwait should return error number 2004-03-17 02:12:19 +00:00
thr_single_np.c
thr_sleep.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_spec.c
thr_spinlock.c Use mutex instead of low level thread lock to implement spinlock, this 2003-12-09 02:37:40 +00:00
thr_stack.c Respect POSIX specification, a value return from pthread_attr_getguardsize 2003-09-14 22:39:44 +00:00
thr_suspend_np.c
thr_switch_np.c
thr_system.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_tcdrain.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_vfork.c
thr_wait4.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_wait.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_waitpid.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_write.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_writev.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_yield.c