diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-07-12 13:29:44 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2007-07-12 13:29:44 +0000 |
commit | 13a4ee0bb4ccb6691729bde67233f5ca66209c7c (patch) | |
tree | 72d62fed4d091a1f38c021d9c3eab5e50044e8c4 /nptl/pthread_barrier_init.c | |
parent | 0923a2c896f09795cca4a6d800a336a56b0ee42c (diff) | |
download | glibc-13a4ee0bb4ccb6691729bde67233f5ca66209c7c.tar glibc-13a4ee0bb4ccb6691729bde67233f5ca66209c7c.tar.gz glibc-13a4ee0bb4ccb6691729bde67233f5ca66209c7c.tar.bz2 glibc-13a4ee0bb4ccb6691729bde67233f5ca66209c7c.zip |
[BZ #4745]
[BZ #4586]
[BZ #4702]
[BZ #4525]
[BZ #4514]
[BZ #4512]
Merge selected bugfixes from the trunk.
Diffstat (limited to 'nptl/pthread_barrier_init.c')
-rw-r--r-- | nptl/pthread_barrier_init.c | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/nptl/pthread_barrier_init.c b/nptl/pthread_barrier_init.c index 8dfc444965..19e82fa38d 100644 --- a/nptl/pthread_barrier_init.c +++ b/nptl/pthread_barrier_init.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -20,13 +20,6 @@ #include <errno.h> #include "pthreadP.h" #include <lowlevellock.h> -#include <kernel-features.h> - - -static const struct pthread_barrierattr default_attr = - { - .pshared = PTHREAD_PROCESS_PRIVATE - }; int @@ -40,15 +33,17 @@ pthread_barrier_init (barrier, attr, count) if (__builtin_expect (count == 0, 0)) return EINVAL; - struct pthread_barrierattr *iattr - = (attr != NULL - ? iattr = (struct pthread_barrierattr *) attr - : &default_attr); + if (attr != NULL) + { + struct pthread_barrierattr *iattr; - if (iattr->pshared != PTHREAD_PROCESS_PRIVATE - && __builtin_expect (iattr->pshared != PTHREAD_PROCESS_SHARED, 0)) - /* Invalid attribute. */ - return EINVAL; + iattr = (struct pthread_barrierattr *) attr; + + if (iattr->pshared != PTHREAD_PROCESS_PRIVATE + && __builtin_expect (iattr->pshared != PTHREAD_PROCESS_SHARED, 0)) + /* Invalid attribute. */ + return EINVAL; + } ibarrier = (struct pthread_barrier *) barrier; @@ -58,14 +53,5 @@ pthread_barrier_init (barrier, attr, count) ibarrier->init_count = count; ibarrier->curr_event = 0; -#ifdef __ASSUME_PRIVATE_FUTEX - ibarrier->private = (iattr->pshared != PTHREAD_PROCESS_PRIVATE - ? 0 : FUTEX_PRIVATE_FLAG); -#else - ibarrier->private = (iattr->pshared != PTHREAD_PROCESS_PRIVATE - ? 0 : THREAD_GETMEM (THREAD_SELF, - header.private_futex)); -#endif - return 0; } |