freebsd-nq/lib/libc_r/uthread
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
pthread_private.h pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
uthread_accept.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_aio_suspend.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_attr_destroy.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_attr_getdetachstate.c Fixed missing consts for function parameters, so that the code matches 2000-05-11 15:57:17 +00:00
uthread_attr_getinheritsched.c add pthread_cancel, obtained from OpenBSD. 1999-11-28 05:38:13 +00:00
uthread_attr_getschedparam.c add pthread_cancel, obtained from OpenBSD. 1999-11-28 05:38:13 +00:00
uthread_attr_getschedpolicy.c add pthread_cancel, obtained from OpenBSD. 1999-11-28 05:38:13 +00:00
uthread_attr_getscope.c add pthread_cancel, obtained from OpenBSD. 1999-11-28 05:38:13 +00:00
uthread_attr_getstackaddr.c Fixed missing consts for function parameters, so that the code matches 2000-05-11 15:57:17 +00:00
uthread_attr_getstacksize.c Fixed missing consts for function parameters, so that the code matches 2000-05-11 15:57:17 +00:00
uthread_attr_init.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_attr_setcreatesuspend_np.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_attr_setdetachstate.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
uthread_attr_setinheritsched.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_attr_setprio.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
uthread_attr_setschedparam.c Add missing man pages. Fix various compliance bugs, mostly having to do with 2000-05-02 06:51:40 +00:00
uthread_attr_setschedpolicy.c Add missing man pages. Fix various compliance bugs, mostly having to do with 2000-05-02 06:51:40 +00:00
uthread_attr_setscope.c Add missing man pages. Fix various compliance bugs, mostly having to do with 2000-05-02 06:51:40 +00:00
uthread_attr_setstackaddr.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
uthread_attr_setstacksize.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
uthread_autoinit.cc Change REGENTS -> AUTHOR in the copyright. 2000-01-06 12:16:16 +00:00
uthread_bind.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_cancel.c pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
uthread_clean.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_close.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_cond.c pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
uthread_condattr_destroy.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_condattr_init.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_connect.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_creat.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_create.c Fix pthread_suspend_np/pthread_resume_np. For the record, suspending a 2000-03-15 13:59:27 +00:00
uthread_detach.c -Wall and minor style(9) cleanups. 1999-12-28 18:13:04 +00:00
uthread_dup2.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_dup.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_equal.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_execve.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_exit.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_fchflags.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_fchmod.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_fchown.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_fcntl.c Use _fcntl() (not fcntl()) inside of fcntl(). 2000-01-28 22:10:27 +00:00
uthread_fd.c Implement continuations to correctly handle [sig|_]longjmp() inside of a 2000-01-19 07:04:50 +00:00
uthread_file.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
uthread_find_thread.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_flock.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_fork.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_fstat.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_fstatfs.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_fsync.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_gc.c Fix a memory leak. pthread_set_name_np() allocates space for a name, but 2000-05-16 21:57:12 +00:00
uthread_getdirentries.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_getpeername.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_getprio.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_getschedparam.c add pthread_cancel, obtained from OpenBSD. 1999-11-28 05:38:13 +00:00
uthread_getsockname.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_getsockopt.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_info.c Fix a memory leak. pthread_set_name_np() allocates space for a name, but 2000-05-16 22:08:14 +00:00
uthread_init.c Implement continuations to correctly handle [sig|_]longjmp() inside of a 2000-01-19 07:04:50 +00:00
uthread_ioctl.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_jmp.c Minor *jmp() cleanups. 2000-01-20 21:53:59 +00:00
uthread_join.c Implement continuations to correctly handle [sig|_]longjmp() inside of a 2000-01-19 07:04:50 +00:00
uthread_kern.c Fix pthread_suspend_np/pthread_resume_np. For the record, suspending a 2000-03-15 13:59:27 +00:00
uthread_kill.c Fixes for signal handling: 1999-12-17 00:56:36 +00:00
uthread_listen.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_mattr_init.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_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
uthread_msync.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_multi_np.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
uthread_mutex_prioceiling.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_mutex_protocol.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_mutex.c pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
uthread_mutexattr_destroy.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
uthread_nanosleep.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_once.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_open.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_pause.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_pipe.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_poll.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_priority_queue.c Implement continuations to correctly handle [sig|_]longjmp() inside of a 2000-01-19 07:04:50 +00:00
uthread_read.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_readv.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_recvfrom.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_recvmsg.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_resume_np.c pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
uthread_rwlock.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_rwlockattr.c Track libc's three-tier symbol naming. libc_r must currently implement 2000-01-12 09:28:58 +00:00
uthread_select.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_self.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_sem.c For errors, return -1 and set errno to indicate the error type, rather than 2000-02-16 19:34:53 +00:00
uthread_sendfile.c Add a wrapper for the sendfile() system call. 2000-04-27 00:59:44 +00:00
uthread_sendmsg.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_sendto.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_seterrno.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_setprio.c Implement continuations to correctly handle [sig|_]longjmp() inside of a 2000-01-19 07:04:50 +00:00
uthread_setschedparam.c Add missing man pages. Fix various compliance bugs, mostly having to do with 2000-05-02 06:51:40 +00:00
uthread_setsockopt.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_shutdown.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_sig.c Fix pthread_suspend_np/pthread_resume_np. For the record, suspending a 2000-03-15 13:59:27 +00:00
uthread_sigaction.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_sigblock.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_sigmask.c sigset_t change (part 5 of 5) 1999-09-29 15:18:46 +00:00
uthread_signal.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_sigpending.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_sigprocmask.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_sigsetmask.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_sigsuspend.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_sigwait.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_single_np.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_sleep.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_socket.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_socketpair.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_spec.c -Wall and minor style(9) cleanups. 1999-12-28 18:13:04 +00:00
uthread_spinlock.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_suspend_np.c pthread_mutex_lock(), pthread_cond_trywait(), and pthread_cond_wait() are 2000-06-14 17:17:41 +00:00
uthread_switch_np.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uthread_system.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_tcdrain.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_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
uthread_wait4.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_wait.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_waitpid.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_write.c Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(), 2000-01-27 23:07:25 +00:00
uthread_writev.c Use __strong_reference() instead of __weak_reference() to assure that the 2000-01-29 22:53:55 +00:00
uthread_yield.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00