diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-12-17 13:49:36 -0800 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-12-17 13:49:36 -0800 |
commit | f01c2359ebd4ed130ea0bfa67b59db896cb55cd5 (patch) | |
tree | 1cd8d18f8349a5e2fa1aa1a67e55276c5e530356 | |
parent | f282f6b90a52d95370392bd7a4e6ec1bbd90afe5 (diff) | |
download | glibc-f01c2359ebd4ed130ea0bfa67b59db896cb55cd5.zip glibc-f01c2359ebd4ed130ea0bfa67b59db896cb55cd5.tar.gz glibc-f01c2359ebd4ed130ea0bfa67b59db896cb55cd5.tar.bz2 |
Small optimization of pthread_rwlock_init.
-rw-r--r-- | nptl/ChangeLog | 5 | ||||
-rw-r--r-- | nptl/pthread_rwlock_init.c | 17 |
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) |