freebsd-skq/lib/libc_r/uthread
jasone 22f14eaadf Fix a race condition in pthread_join(). All of the following must occur
atomically:

1) Search _thread_list for the thread to join.
2) Search _dead_list for the thread to join.
3) Set the running thread as the joiner.

While we're at it, fix a race in the case where multiple threads try to
join on the same thread.  POSIX says that the behavior of multiple joiners
is undefined, but the fix is cheap as a result of the other fix.
2001-06-27 11:41:15 +00:00
..
Makefile.inc Activate build of posix1e extensions in libc and libc_r that have been 2001-04-04 18:17:28 +00:00
pthread_private.h Fix a race condition in pthread_join(). All of the following must occur 2001-06-27 11:41:15 +00:00
uthread_accept.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_acl_aclcheck_fd.c Instead of using a join queue for each thread, use a single pointer to 2001-05-20 23:08:33 +00:00
uthread_acl_delete_fd.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_acl_get_fd.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_acl_set_fd.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_aio_suspend.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_destroy.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_getdetachstate.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_getinheritsched.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_getschedparam.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_getschedpolicy.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_getscope.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_getstackaddr.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_getstacksize.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_init.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_setcreatesuspend_np.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_setdetachstate.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_setinheritsched.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_setprio.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_setschedparam.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_setschedpolicy.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_setscope.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_setstackaddr.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_attr_setstacksize.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_autoinit.cc Change REGENTS -> AUTHOR in the copyright. 2000-01-06 12:16:16 +00:00
uthread_bind.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_cancel.c Instead of using a join queue for each thread, use a single pointer to 2001-05-20 23:08:33 +00:00
uthread_cap_get_fd.c Add thread safety wrappers for the posix1e syscalls that deal with file 2001-04-04 18:10:25 +00:00
uthread_cap_set_fd.c Add thread safety wrappers for the posix1e syscalls that deal with file 2001-04-04 18:10:25 +00:00
uthread_clean.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_close.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_cond.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_condattr_destroy.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_condattr_init.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_connect.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_creat.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_create.c Instead of using a join queue for each thread, use a single pointer to 2001-05-20 23:08:33 +00:00
uthread_detach.c Instead of using a join queue for each thread, use a single pointer to 2001-05-20 23:08:33 +00:00
uthread_dup2.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_dup.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_equal.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_execve.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_exit.c Instead of using a join queue for each thread, use a single pointer to 2001-05-20 23:08:33 +00:00
uthread_fchflags.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_fchmod.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_fchown.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_fcntl.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_fd.c Remove (int) file descriptor locking. It should be up to the 2001-02-11 22:07:32 +00:00
uthread_file.c Remove (int) file descriptor locking. It should be up to the 2001-02-11 22:07:32 +00:00
uthread_find_thread.c Fix a race condition in pthread_join(). All of the following must occur 2001-06-27 11:41:15 +00:00
uthread_flock.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_fork.c Properly copy the P_ALTSTACK flag in struct proc::p_flag to the child 2001-05-07 18:07:29 +00:00
uthread_fpathconf.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_fstat.c Compenate for header dethreading. 2001-05-01 09:32:34 +00:00
uthread_fstatfs.c Compenate for header dethreading. 2001-05-01 09:32:34 +00:00
uthread_fsync.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_gc.c Added a missing set of braces to a conditional that encompasses more than 2001-04-10 04:22:24 +00:00
uthread_getdirentries.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_getpeername.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_getprio.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_getschedparam.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_getsockname.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_getsockopt.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_info.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_init.c Instead of using a join queue for each thread, use a single pointer to 2001-05-20 23:08:33 +00:00
uthread_ioctl.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_jmp.c Compenate for header dethreading. 2001-05-01 09:32:34 +00:00
uthread_join.c Fix a race condition in pthread_join(). All of the following must occur 2001-06-27 11:41:15 +00:00
uthread_kern.c Move the check for a pending signals to after the thread has been 2001-05-04 20:37:07 +00:00
uthread_kevent.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_kill.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_listen.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_main_np.c Add a leading underscore to the pthread_main_np function name, and 2001-04-03 22:25:39 +00:00
uthread_mattr_init.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_mattr_kind_np.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_msync.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_multi_np.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_mutex_prioceiling.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_mutex_protocol.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_mutex.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_mutexattr_destroy.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_nanosleep.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_once.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_open.c Typo; fix open() so that it is not a cancellation point when called 2001-04-18 12:42:11 +00:00
uthread_pause.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_pipe.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_poll.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_priority_queue.c Add weak definitions for wrapped system calls. In general: 2001-01-24 13:03:38 +00:00
uthread_read.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_readv.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_recvfrom.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_recvmsg.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_resume_np.c Instead of using a join queue for each thread, use a single pointer to 2001-05-20 23:08:33 +00:00
uthread_rwlock.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_rwlockattr.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_select.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_self.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_sem.c Condition variable waiters are queued in descending priority order, so 2001-05-18 00:36:05 +00:00
uthread_sendfile.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_sendmsg.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_sendto.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_seterrno.c Add weak definitions for wrapped system calls. In general: 2001-01-24 13:03:38 +00:00
uthread_setprio.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_setschedparam.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_setsockopt.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_shutdown.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_sig.c Instead of using a join queue for each thread, use a single pointer to 2001-05-20 23:08:33 +00:00
uthread_sigaction.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_sigblock.c Add weak definitions for wrapped system calls. In general: 2001-01-24 13:03:38 +00:00
uthread_sigmask.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_signal.c Add weak definitions for wrapped system calls. In general: 2001-01-24 13:03:38 +00:00
uthread_sigpending.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_sigprocmask.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_sigsetmask.c Add weak definitions for wrapped system calls. In general: 2001-01-24 13:03:38 +00:00
uthread_sigsuspend.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_sigwait.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_single_np.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_sleep.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_socket.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_socketpair.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_spec.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_spinlock.c
uthread_suspend_np.c Instead of using a join queue for each thread, use a single pointer to 2001-05-20 23:08:33 +00:00
uthread_switch_np.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_system.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_tcdrain.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_vfork.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_wait4.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_wait.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_waitpid.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_write.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_writev.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
uthread_yield.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00