freebsd-nq/lib/libkse/thread
Jason Evans 314be1347b pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are
not allowed to return EINTR, but use of pthread_suspend_np() could cause
EINTR to be returned.  To fix this, restructure pthread_suspend_np() so that
it does not interrupt a thread that is waiting on a mutex or condition, and
keep enough state around that pthread_resume_np() can fix things up
afterwards.

Reviewed by:	deischen
2000-06-14 17:17:41 +00:00
..
Makefile.inc Add a wrapper for the sendfile() system call. 2000-04-27 00:59:44 +00:00
thr_aio_suspend.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_attr_destroy.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_attr_getdetachstate.c Fixed missing consts for function parameters, so that the code matches 2000-05-11 15:57:17 +00:00
thr_attr_getinheritsched.c add pthread_cancel, obtained from OpenBSD. 1999-11-28 05:38:13 +00:00
thr_attr_getschedparam.c add pthread_cancel, obtained from OpenBSD. 1999-11-28 05:38:13 +00:00
thr_attr_getschedpolicy.c add pthread_cancel, obtained from OpenBSD. 1999-11-28 05:38:13 +00:00
thr_attr_getscope.c add pthread_cancel, obtained from OpenBSD. 1999-11-28 05:38:13 +00:00
thr_attr_getstackaddr.c Fixed missing consts for function parameters, so that the code matches 2000-05-11 15:57:17 +00:00
thr_attr_getstacksize.c Fixed missing consts for function parameters, so that the code matches 2000-05-11 15:57:17 +00:00
thr_attr_init.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_attr_setcreatesuspend_np.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_attr_setdetachstate.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
thr_attr_setinheritsched.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_attr_setschedparam.c Add missing man pages. Fix various compliance bugs, mostly having to do with 2000-05-02 06:51:40 +00:00
thr_attr_setschedpolicy.c Add missing man pages. Fix various compliance bugs, mostly having to do with 2000-05-02 06:51:40 +00:00
thr_attr_setscope.c Add missing man pages. Fix various compliance bugs, mostly having to do with 2000-05-02 06:51:40 +00:00
thr_attr_setstackaddr.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
thr_attr_setstacksize.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
thr_cancel.c pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
thr_clean.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_close.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_cond.c pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
thr_condattr_destroy.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_condattr_init.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_creat.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_create.c Fix pthread_suspend_np/pthread_resume_np. For the record, suspending a 2000-03-15 13:59:27 +00:00
thr_detach.c -Wall and minor style(9) cleanups. 1999-12-28 18:13:04 +00:00
thr_equal.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_exit.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_fcntl.c Use _fcntl() (not fcntl()) inside of fcntl(). 2000-01-28 22:10:27 +00:00
thr_find_thread.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_fork.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_fsync.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_getprio.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_getschedparam.c add pthread_cancel, obtained from OpenBSD. 1999-11-28 05:38:13 +00:00
thr_info.c Fix a memory leak. pthread_set_name_np() allocates space for a name, but 2000-05-16 22:08:14 +00:00
thr_init.c Implement continuations to correctly handle [sig|_]longjmp() inside of a 2000-01-19 07:04:50 +00:00
thr_join.c Implement continuations to correctly handle [sig|_]longjmp() inside of a 2000-01-19 07:04:50 +00:00
thr_kern.c Fix pthread_suspend_np/pthread_resume_np. For the record, suspending a 2000-03-15 13:59:27 +00:00
thr_kill.c Fixes for signal handling: 1999-12-17 00:56:36 +00:00
thr_mattr_init.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_mattr_kind_np.c Add missing man pages. Fix various compliance bugs, mostly having to do with 2000-05-02 06:51:40 +00:00
thr_msync.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_multi_np.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
thr_mutex_prioceiling.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_mutex_protocol.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_mutex.c pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
thr_mutexattr_destroy.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
thr_nanosleep.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_once.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_open.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_pause.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_poll.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_priority_queue.c Implement continuations to correctly handle [sig|_]longjmp() inside of a 2000-01-19 07:04:50 +00:00
thr_private.h pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
thr_read.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_readv.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_resume_np.c pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
thr_rwlock.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_rwlockattr.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
thr_select.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_self.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_sem.c For errors, return -1 and set errno to indicate the error type, rather than 2000-02-16 19:34:53 +00:00
thr_seterrno.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_setprio.c Implement continuations to correctly handle [sig|_]longjmp() inside of a 2000-01-19 07:04:50 +00:00
thr_setschedparam.c Add missing man pages. Fix various compliance bugs, mostly having to do with 2000-05-02 06:51:40 +00:00
thr_sig.c Fix pthread_suspend_np/pthread_resume_np. For the record, suspending a 2000-03-15 13:59:27 +00:00
thr_sigaction.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_sigmask.c sigset_t change (part 5 of 5) 1999-09-29 15:18:46 +00:00
thr_sigpending.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_sigprocmask.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_sigsuspend.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_sigwait.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_single_np.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_sleep.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_spec.c -Wall and minor style(9) cleanups. 1999-12-28 18:13:04 +00:00
thr_spinlock.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_suspend_np.c pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
thr_switch_np.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
thr_system.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_tcdrain.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_vfork.c In libc_r, rename vfork syscall to _thread_sys_vfork and make vfork an alias 1998-09-12 22:03:20 +00:00
thr_wait4.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_wait.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_waitpid.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_write.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
thr_writev.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
thr_yield.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00