diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-02-27 10:32:38 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-02-27 10:32:38 +0000 |
commit | d2637c70532ba49bf41b25c6aaf1b5d2b09d4aed (patch) | |
tree | 055a8b0bf4eb4462552352fbe52793c09f82fdcf /nptl/DESIGN-rwlock.txt | |
parent | e361e438a115275fdd56eb25a52b798127adae76 (diff) | |
download | glibc-d2637c70532ba49bf41b25c6aaf1b5d2b09d4aed.tar.gz glibc-d2637c70532ba49bf41b25c6aaf1b5d2b09d4aed.tar.xz glibc-d2637c70532ba49bf41b25c6aaf1b5d2b09d4aed.zip |
Update.
2003-02-24 David Mosberger <davidm@hpl.hp.com> * sysdeps/unix/sysv/linux/ia64/sysdep.S (__syscall_error): Fix unwind info.
Diffstat (limited to 'nptl/DESIGN-rwlock.txt')
-rw-r--r-- | nptl/DESIGN-rwlock.txt | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/nptl/DESIGN-rwlock.txt b/nptl/DESIGN-rwlock.txt index d97c084484..cdbd4ce9ef 100644 --- a/nptl/DESIGN-rwlock.txt +++ b/nptl/DESIGN-rwlock.txt @@ -96,11 +96,15 @@ pthread_rwlock_unlock(pthread_rwlock_t *rwlock) if (!rwlock->readers) { if (rwlock->nr_writers_queued) { ++rwlock->writer_wakeup; + lll_unlock(rwlock->lock); futex_wake(&rwlock->writer_wakeup, 1); + return; } else if (rwlock->nr_readers_queued) { ++rwlock->readers_wakeup; + lll_unlock(rwlock->lock); futex_wake(&rwlock->readers_wakeup, MAX_INT); + return; } } |