Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 17 Jan 2000 04:00:04 +0000 (04:00 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 17 Jan 2000 04:00:04 +0000 (04:00 +0000)
* Makeconfig (rpath-dirs): Remove db2.
(dbojdir): Remove variable.

ChangeLog
Makeconfig
linuxthreads/ChangeLog
linuxthreads/rwlock.c

index a97dc34..8b1325a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2000-01-16  Ulrich Drepper  <drepper@cygnus.com>
 
+       * Makeconfig (rpath-dirs): Remove db2.
+       (dbojdir): Remove variable.
+
        * locale/programs/locfile.h (handle_copy): Take repertoire map
        name as parameter, not pointer to repertoire structure.
        * locale/programs/ld-address.c: Change caller.
index 47d3f3f..64f2104 100644 (file)
@@ -414,11 +414,10 @@ link-libc = -Wl,-rpath-link=$(rpath-link) \
            $(common-objpfx)libc.so$(libc.so-version) \
            $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
 # This is how to find at build-time things that will be installed there.
-rpath-dirs = math elf dlfcn nss nis db2 rt resolv
+rpath-dirs = math elf dlfcn nss nis rt resolv
 rpath-link = \
 $(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%)))
 elfobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)elf)
-dbobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)db2)
 else
 nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
 resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
index c783b3b..754534e 100644 (file)
@@ -1,3 +1,11 @@
+2000-01-16  Ulrich Drepper  <drepper@cygnus.com>
+
+       * rwlock.c (pthread_rwlock_unlock): Correct one more problem with
+       preference handling.
+       (pthread_rwlockattr_setkind_np): Allow
+       PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
+       Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
+
 2000-01-12  Ulrich Drepper  <drepper@cygnus.com>
 
        * internals.h (pthread_readlock_info): New structure.
index 7b472e2..e1401c3 100644 (file)
@@ -362,8 +362,9 @@ pthread_rwlock_unlock (pthread_rwlock_t *rwlock)
        }
       rwlock->__rw_writer = NULL;
 
-      if (rwlock->__rw_kind == PTHREAD_RWLOCK_PREFER_READER_NP
-         || (th = dequeue (&rwlock->__rw_write_waiting)) == NULL)
+      if ((rwlock->__rw_kind == PTHREAD_RWLOCK_PREFER_READER_NP
+          && !queue_is_empty(&rwlock->__rw_read_waiting))
+         || (th = dequeue(&rwlock->__rw_write_waiting)) == NULL)
        {
          /* Restart all waiting readers.  */
          torestart = rwlock->__rw_read_waiting;
@@ -477,6 +478,7 @@ pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *attr, int pref)
 {
   if (pref != PTHREAD_RWLOCK_PREFER_READER_NP
       && pref != PTHREAD_RWLOCK_PREFER_WRITER_NP
+      && pref != PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
       && pref != PTHREAD_RWLOCK_DEFAULT_NP)
     return EINVAL;