Index: thr_rwlock.c =================================================================== --- thr_rwlock.c (revision 197767) +++ thr_rwlock.c (working copy) @@ -144,6 +144,7 @@ flags = 0; } +#if 0 /* * POSIX said the validity of the abstimeout parameter need * not be checked if the lock can be immediately acquired. @@ -153,6 +154,7 @@ curthread->rdlock_count++; return (ret); } +#endif if (__predict_false(abstime && (abstime->tv_nsec >= 1000000000 || abstime->tv_nsec < 0))) @@ -174,11 +176,13 @@ if (ret != EINTR) break; +#if 0 /* if interrupted, try to lock it in userland again. */ if (_thr_rwlock_tryrdlock(&prwlock->lock, flags) == 0) { ret = 0; break; } +#endif } if (ret == 0) curthread->rdlock_count++; @@ -290,6 +294,7 @@ prwlock = *rwlock; } +#if 0 /* * POSIX said the validity of the abstimeout parameter need * not be checked if the lock can be immediately acquired. @@ -299,6 +304,7 @@ prwlock->owner = curthread; return (ret); } +#endif if (__predict_false(abstime && (abstime->tv_nsec >= 1000000000 || abstime->tv_nsec < 0))) @@ -325,12 +331,14 @@ if (ret != EINTR) break; +#if 0 /* if interrupted, try to lock it in userland again. */ if (_thr_rwlock_trywrlock(&prwlock->lock) == 0) { ret = 0; prwlock->owner = curthread; break; } +#endif } return (ret); } @@ -371,7 +379,7 @@ prwlock->owner = NULL; } - ret = _thr_rwlock_unlock(&prwlock->lock); + ret = __thr_rwlock_unlock(&prwlock->lock); if (ret == 0 && (state & URWLOCK_WRITE_OWNER) == 0) curthread->rdlock_count--;