From d8ff3792a8020ff25b703109a763161236cfa8dd Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 26 May 2007 16:19:15 +0000 Subject: * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier): Add private field. * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition. * pthread_barrier_init.c: Set private flag if pshared and private futexes are supported. * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use private field in futex command setup. * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise. --- nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'nptl/sysdeps/unix/sysv/linux/i386') diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S index fe7a8b9c66..29857195f0 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -69,7 +69,13 @@ pthread_barrier_wait: /* Wait for the remaining threads. The call will return immediately if the CURR_EVENT memory has meanwhile been changed. */ -7: xorl %ecx, %ecx /* movl $FUTEX_WAIT, %ecx */ +7: +#if FUTEX_WAIT == 0 + movl PRIVATE(%ebx), %ecx +#else + movl $FUTEX_WAIT, %ecx + orl PRIVATE(%ebx), %ecx +#endif xorl %esi, %esi 8: movl $SYS_futex, %eax ENTER_KERNEL @@ -120,6 +126,7 @@ pthread_barrier_wait: so 0x7fffffff is the highest value. */ movl $0x7fffffff, %edx movl $FUTEX_WAKE, %ecx + orl PRIVATE(%ebx), %ecx movl $SYS_futex, %eax ENTER_KERNEL -- cgit v1.2.3-70-g09d2