summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-12-17 13:49:36 -0800
committerUlrich Drepper <drepper@redhat.com>2009-12-17 13:49:36 -0800
commitf01c2359ebd4ed130ea0bfa67b59db896cb55cd5 (patch)
tree1cd8d18f8349a5e2fa1aa1a67e55276c5e530356
parentf282f6b90a52d95370392bd7a4e6ec1bbd90afe5 (diff)
downloadglibc-f01c2359ebd4ed130ea0bfa67b59db896cb55cd5.tar.gz
glibc-f01c2359ebd4ed130ea0bfa67b59db896cb55cd5.tar.xz
glibc-f01c2359ebd4ed130ea0bfa67b59db896cb55cd5.zip
Small optimization of pthread_rwlock_init.
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/pthread_rwlock_init.c17
2 files changed, 9 insertions, 13 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index b05f6e4a03..8cea2f648f 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-17  Ulrich Drepper  <drepper@redhat.com>
+
+	* pthread_rwlock_init.c (__pthread_rwlock_init): Simplify code by
+	using memset.
+
 2009-12-01  Dinakar Guniguntala  <dino@in.ibm.com>
 
 	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.h: Define
diff --git a/nptl/pthread_rwlock_init.c b/nptl/pthread_rwlock_init.c
index 27f25ac2ab..c0aa194107 100644
--- a/nptl/pthread_rwlock_init.c
+++ b/nptl/pthread_rwlock_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2007, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -37,13 +37,7 @@ __pthread_rwlock_init (rwlock, attr)
 
   iattr = ((const struct pthread_rwlockattr *) attr) ?: &default_attr;
 
-  rwlock->__data.__lock = 0;
-  rwlock->__data.__nr_readers = 0;
-  rwlock->__data.__readers_wakeup = 0;
-  rwlock->__data.__writer_wakeup = 0;
-  rwlock->__data.__nr_readers_queued = 0;
-  rwlock->__data.__nr_writers_queued = 0;
-  rwlock->__data.__writer = 0;
+  memset (rwlock, '\0', sizeof (*rwlock));
 
   rwlock->__data.__flags
     = iattr->lockkind == PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP;
@@ -56,8 +50,8 @@ __pthread_rwlock_init (rwlock, attr)
      0x80 in case private futexes are available and zero otherwise.
      This leads to the following table:
 
-                 |     pshared     |     result
-                 | shared  private | shared  private |
+		 |     pshared     |     result
+		 | shared  private | shared  private |
      ------------+-----------------+-----------------+
      !avail 0    |     0       0   |     0       0   |
       avail 0x80 |  0x80       0   |     0    0x80   |
@@ -74,9 +68,6 @@ __pthread_rwlock_init (rwlock, attr)
 					      header.private_futex));
 #endif
 
-  rwlock->__data.__pad1 = 0;
-  rwlock->__data.__pad2 = 0;
-
   return 0;
 }
 strong_alias (__pthread_rwlock_init, pthread_rwlock_init)