freebsd-dev/lib/libthr/thread
Attilio Rao 137ae5d291 In the current code, rdlock_count is not correctly handled for some cases.
The most notable is that it is not bumped in rwlock_rdlock_common() when
the hard path (__thr_rwlock_rdlock()) returns successfully.
This can lead to deadlocks in libthr when rwlocks recursion in read mode
happens.
Fix the interested parts by correctly handling rdlock_count.

PR:		threads/136345
Reported by:	rink
Tested by:	rink
Reviewed by:	jeff
Approved by:	re (kib)
MFC:		2 weeks
2009-07-06 09:31:04 +00:00
..
Makefile.inc Add POSIX pthread API pthread_getcpuclockid() to get a thread's cpu 2008-03-22 09:59:20 +00:00
thr_affinity.c Avoid various shadowed variables. libthr is now almost WARNS=4 clean except 2008-04-23 21:06:51 +00:00
thr_atfork.c Replace internal usage of struct umtx with umutex which can supports 2006-09-06 04:04:10 +00:00
thr_attr.c Avoid various shadowed variables. libthr is now almost WARNS=4 clean except 2008-04-23 21:06:51 +00:00
thr_autoinit.c
thr_barrier.c _thr_ucond_wait drops lock, we should pick it up again. 2006-12-05 23:46:11 +00:00
thr_barrierattr.c WARNS level 4 cleanup. 2006-04-04 02:57:49 +00:00
thr_cancel.c Tweak _thr_cancel_leave_defer a bit to fix a possible race. 2006-12-05 05:01:57 +00:00
thr_clean.c Make pthread_cleanup_push() and pthread_cleanup_pop() as a pair of macros, 2008-06-09 01:14:10 +00:00
thr_concurrency.c WARNS level 4 cleanup. 2006-04-04 02:57:49 +00:00
thr_cond.c Remove unused functions. 2008-04-02 08:33:42 +00:00
thr_condattr.c In function pthread_condattr_getpshared, store result correctly. 2008-08-01 01:21:49 +00:00
thr_create.c Use UMTX_OP_WAIT_UINT_PRIVATE and UMTX_OP_WAKE_PRIVATE to save 2008-04-29 03:58:18 +00:00
thr_detach.c WARNS level 4 cleanup. 2006-04-04 02:57:49 +00:00
thr_equal.c Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
thr_event.c Allow psaddr_t to be widened by using thr_pread_{int,long,ptr}, 2008-09-14 16:07:21 +00:00
thr_exit.c Move call to _malloc_thread_cleanup() so that if this is the last thread, 2008-09-09 17:14:32 +00:00
thr_fork.c These are some cosmetic changes to improve the clarity of libthr's fork implementation. 2009-05-11 16:45:53 +00:00
thr_getcpuclockid.c Add POSIX pthread API pthread_getcpuclockid() to get a thread's cpu 2008-03-22 09:59:20 +00:00
thr_getprio.c Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
thr_getschedparam.c use rtprio_thread system call to get or set thread priority. 2006-09-21 04:21:30 +00:00
thr_info.c If a thread who's name is being set is not the current thread, use macros 2007-04-05 07:20:31 +00:00
thr_init.c - Reduce function call overhead for uncontended case. 2008-05-29 07:57:33 +00:00
thr_join.c If a thread was detached, return EINVAL instead, the error code 2006-11-28 11:05:31 +00:00
thr_kern.c use rtprio_thread system call to get or set thread priority. 2006-09-21 04:21:30 +00:00
thr_kill.c Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
thr_list.c Eliminate atomic operations in thread cancellation functions, it should 2006-11-24 09:57:38 +00:00
thr_main_np.c WARNS level 4 cleanup. 2006-04-04 02:57:49 +00:00
thr_multi_np.c Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
thr_mutex.c Add two commands to _umtx_op system call to allow a simple mutex to be 2008-06-24 07:32:12 +00:00
thr_mutexattr.c pthread_mutexattr_destroy() was accidentally broken in last revision, 2008-03-20 11:47:08 +00:00
thr_once.c Eliminate global mutex by using pthread_once's state field as 2008-05-30 00:02:59 +00:00
thr_printf.c Import my recent 1:1 threading working. some features improved includes: 2005-04-02 01:20:00 +00:00
thr_private.h Make pthread_cleanup_push() and pthread_cleanup_pop() as a pair of macros, 2008-06-09 01:14:10 +00:00
thr_pspinlock.c Reverse the logic of UP and SMP. 2007-10-16 07:36:02 +00:00
thr_resume_np.c Use UMTX_OP_WAIT_UINT_PRIVATE and UMTX_OP_WAKE_PRIVATE to save 2008-04-29 03:58:18 +00:00
thr_rtld.c In the current code, rdlock_count is not correctly handled for some cases. 2009-07-06 09:31:04 +00:00
thr_rwlock.c In the current code, rdlock_count is not correctly handled for some cases. 2009-07-06 09:31:04 +00:00
thr_rwlockattr.c WARNS level 4 cleanup. 2006-04-04 02:57:49 +00:00
thr_self.c Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
thr_sem.c Use UMTX_OP_WAIT_UINT_PRIVATE and UMTX_OP_WAKE_PRIVATE to save 2008-04-29 03:58:18 +00:00
thr_setprio.c Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
thr_setschedparam.c use rtprio_thread system call to get or set thread priority. 2006-09-21 04:21:30 +00:00
thr_sig.c Use UMTX_OP_WAIT_UINT_PRIVATE and UMTX_OP_WAKE_PRIVATE to save 2008-04-29 03:58:18 +00:00
thr_single_np.c Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
thr_spec.c In _pthread_key_create() ensure that libthr is initialized. This 2007-11-06 21:50:43 +00:00
thr_spinlock.c Avoid various shadowed variables. libthr is now almost WARNS=4 clean except 2008-04-23 21:06:51 +00:00
thr_stack.c WARNS level 4 cleanup. 2006-04-04 02:57:49 +00:00
thr_suspend_np.c Use UMTX_OP_WAIT_UINT_PRIVATE and UMTX_OP_WAKE_PRIVATE to save 2008-04-29 03:58:18 +00:00
thr_switch_np.c WARNS level 4 cleanup. 2006-04-04 02:57:49 +00:00
thr_symbols.c Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
thr_syscalls.c Don't ignore other fcntl functions, directly call __sys_fcntl if 2009-03-09 05:54:43 +00:00
thr_umtx.c Add two commands to _umtx_op system call to allow a simple mutex to be 2008-06-24 07:32:12 +00:00
thr_umtx.h Add two commands to _umtx_op system call to allow a simple mutex to be 2008-06-24 07:32:12 +00:00
thr_yield.c Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00