aboutsummaryrefslogtreecommitdiff
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.zip
glibc-f01c2359ebd4ed130ea0bfa67b59db896cb55cd5.tar.gz
glibc-f01c2359ebd4ed130ea0bfa67b59db896cb55cd5.tar.bz2
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 b05f6e4..8cea2f6 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 27f25ac..c0aa1941 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)