summaryrefslogtreecommitdiff
path: root/nptl/pthread_rwlock_init.c
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 /nptl/pthread_rwlock_init.c
parentf282f6b90a52d95370392bd7a4e6ec1bbd90afe5 (diff)
Small optimization of pthread_rwlock_init.
Diffstat (limited to 'nptl/pthread_rwlock_init.c')
-rw-r--r--nptl/pthread_rwlock_init.c17
1 files changed, 4 insertions, 13 deletions
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)