diff options
author | davidxu <davidxu@FreeBSD.org> | 2010-10-20 02:34:02 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2010-10-20 02:34:02 +0000 |
commit | 1126acd0dc63c0b7713bc81b5e71684fb87c7fc0 (patch) | |
tree | 6187f2f58cdd428ad27ac0f3fb042a22046585f2 /lib/libthr/thread/thr_rwlockattr.c | |
parent | 520d21ea78ad909c12b58c25403192af742c855c (diff) | |
download | FreeBSD-src-1126acd0dc63c0b7713bc81b5e71684fb87c7fc0.zip FreeBSD-src-1126acd0dc63c0b7713bc81b5e71684fb87c7fc0.tar.gz |
Revert revision 214007, I realized that MySQL wants to resolve
a silly rwlock deadlock problem, the deadlock is caused by writer
waiters, if a thread has already locked a reader lock, and wants to
acquire another reader lock, it will be blocked by writer waiters,
but we had already fixed it years ago.
Diffstat (limited to 'lib/libthr/thread/thr_rwlockattr.c')
-rw-r--r-- | lib/libthr/thread/thr_rwlockattr.c | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/lib/libthr/thread/thr_rwlockattr.c b/lib/libthr/thread/thr_rwlockattr.c index 23ea73e..73ccdc9 100644 --- a/lib/libthr/thread/thr_rwlockattr.c +++ b/lib/libthr/thread/thr_rwlockattr.c @@ -36,10 +36,8 @@ __weak_reference(_pthread_rwlockattr_destroy, pthread_rwlockattr_destroy); __weak_reference(_pthread_rwlockattr_getpshared, pthread_rwlockattr_getpshared); -__weak_reference(_pthread_rwlockattr_getkind_np, pthread_rwlockattr_getkind_np); __weak_reference(_pthread_rwlockattr_init, pthread_rwlockattr_init); __weak_reference(_pthread_rwlockattr_setpshared, pthread_rwlockattr_setpshared); -__weak_reference(_pthread_rwlockattr_setkind_np, pthread_rwlockattr_setkind_np); int _pthread_rwlockattr_destroy(pthread_rwlockattr_t *rwlockattr) @@ -83,7 +81,6 @@ _pthread_rwlockattr_init(pthread_rwlockattr_t *rwlockattr) return(ENOMEM); prwlockattr->pshared = PTHREAD_PROCESS_PRIVATE; - prwlockattr->kind = PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP; *rwlockattr = prwlockattr; return(0); @@ -100,22 +97,3 @@ _pthread_rwlockattr_setpshared(pthread_rwlockattr_t *rwlockattr, int pshared) return(0); } - -int -_pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *attr, int kind) -{ - if (kind != PTHREAD_RWLOCK_PREFER_READER_NP && - kind != PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP && - kind != PTHREAD_RWLOCK_PREFER_WRITER_NP) { - return (EINVAL); - } - (*attr)->kind = kind; - return (0); -} - -int -_pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t *attr, int *kind) -{ - *kind = (*attr)->kind; - return (0); -} |