freebsd-skq/lib/libpthread/thread
Daniel Eischen 24f33bca1c Add a simple work-around for deadlocking on recursive read locks
on a rwlock while there are writers waiting.  We normally favor
writers but when a reader already has at least one other read lock,
we favor the reader.  We don't track all the rwlocks owned by a
thread, nor all the threads that own a rwlock -- we just keep
a count of all the read locks owned by a thread.

PR:	24641
2004-01-08 15:37:09 +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 Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_get_np.c Avoid accessing user provided parameters in critical region. 2003-07-07 04:28:23 +00:00
thr_attr_getdetachstate.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getguardsize.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getinheritsched.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getschedparam.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getschedpolicy.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getscope.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getstack.c Add pthread_attr_getstack() and pthread_attr_setstack(). 2003-02-10 08:48:04 +00:00
thr_attr_getstackaddr.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getstacksize.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_init.c Cleanup thread accounting. Don't reset a threads timeslice 2003-07-18 02:46:55 +00:00
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 Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
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 Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_attr_setschedpolicy.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
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 Add pthread_attr_getstack() and pthread_attr_setstack(). 2003-02-10 08:48:04 +00:00
thr_attr_setstackaddr.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_setstacksize.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_autoinit.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
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 Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_close.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_concurrency.c Allow the concurrency level to be reduced. 2003-08-30 12:09:16 +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 Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_condattr_init.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
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 Add a simple work-around for deadlocking on recursive read locks 2004-01-08 15:37:09 +00:00
thr_detach.c Move idle kse wakeup to outside of regions where locks are held. 2003-07-23 02:11:07 +00:00
thr_equal.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
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 o Eliminate upcall for PTHREAD_SYSTEM_SCOPE thread, now it 2003-07-17 23:02:30 +00:00
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 Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_getschedparam.c Avoid accessing user provided parameters in critical region. 2003-07-07 04:28:23 +00:00
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 Replace a comment with more accurated one, memory heap is now protected by 2003-12-19 13:24:54 +00:00
thr_kill.c o Use a daemon thread to monitor signal events in kernel, if pending 2003-06-28 09:55:02 +00:00
thr_main_np.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_mattr_init.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_mattr_kind_np.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
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 Revamp suspend and resume. While I'm here add pthread_suspend_all_np() 2002-05-24 04:32:28 +00:00
thr_mutex_prioceiling.c Avoid accessing user provided parameters in critical region. 2003-07-07 04:28:23 +00:00
thr_mutex_protocol.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_mutex.c More reliably check timeout for pthread_mutex_timedlock. 2003-12-09 00:52:28 +00:00
thr_mutexattr_destroy.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
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 Support printing 64 bits pointer and long integer. 2003-08-19 08:29:33 +00:00
thr_priority_queue.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_private.h Add a simple work-around for deadlocking on recursive read locks 2004-01-08 15:37:09 +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 Override libc function raise(), in threading mode, raise() will 2003-07-19 05:25:49 +00:00
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 Move idle kse wakeup to outside of regions where locks are held. 2003-07-23 02:11:07 +00:00
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 Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_select.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_self.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_sem.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_seterrno.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_setprio.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_setschedparam.c Add an i386-specifc hack to always set %gs. There still seems 2003-04-21 04:02:56 +00:00
thr_sig.c Kernel now supports per-thread sigaltstack, follow the change to 2004-01-03 02:40:27 +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 Treat initial thread as scope system thread when KSE mode is not activated 2003-08-18 03:58:29 +00:00
thr_sigprocmask.c Treat initial thread as scope system thread when KSE mode is not activated 2003-08-18 03:58:29 +00:00
thr_sigsuspend.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_sigwait.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_single_np.c Revamp suspend and resume. While I'm here add pthread_suspend_all_np() 2002-05-24 04:32:28 +00:00
thr_sleep.c Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename 2003-12-09 02:20:56 +00:00
thr_spec.c Add back a loop for up to PTHREAD_DESTRUCTOR_ITERATIONS to 2003-08-20 02:34:14 +00:00
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 Fix suspend and resume. 2003-05-04 16:17:01 +00:00
thr_switch_np.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
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 To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
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 Treat initial thread as scope system thread when KSE mode is not activated 2003-08-18 03:58:29 +00:00