mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
whether there are more than one thread makes no sense here since we only call the slow path if the locks are taken. * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
This commit is contained in:
		@@ -1,5 +1,10 @@
 | 
			
		||||
2007-05-29  Ulrich Drepper  <drepper@redhat.com>
 | 
			
		||||
 | 
			
		||||
	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
 | 
			
		||||
	whether there are more than one thread makes no sense here since
 | 
			
		||||
	we only call the slow path if the locks are taken.
 | 
			
		||||
	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
 | 
			
		||||
 | 
			
		||||
	* sysdeps/unix/sysv/linux/internaltypes.h: Introduce
 | 
			
		||||
	COND_NWAITERS_SHIFT.
 | 
			
		||||
	* pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
 | 
			
		||||
 
 | 
			
		||||
@@ -19,16 +19,6 @@
 | 
			
		||||
 | 
			
		||||
#include <kernel-features.h>
 | 
			
		||||
 | 
			
		||||
/* In libc.so we do not unconditionally use the lock prefix.  Only if
 | 
			
		||||
   the application is using threads.  */
 | 
			
		||||
#ifndef UP
 | 
			
		||||
# define LOCK \
 | 
			
		||||
	cmpl	$0, %gs:MULTIPLE_THREADS_OFFSET; 			      \
 | 
			
		||||
	je	0f;							      \
 | 
			
		||||
	lock;								      \
 | 
			
		||||
0:
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* All locks in libc are private.  Use the kernel feature if possible.  */
 | 
			
		||||
#define FUTEX_PRIVATE_FLAG	128
 | 
			
		||||
#ifdef __ASSUME_PRIVATE_FUTEX
 | 
			
		||||
 
 | 
			
		||||
@@ -80,7 +80,7 @@ struct pthread_condattr
 | 
			
		||||
   of bits needed to represent the ID of the clock.  COND_NWAITERS_SHIFT
 | 
			
		||||
   is the number of bits reserved for other purposes like the clock.  */
 | 
			
		||||
#define COND_CLOCK_BITS		1
 | 
			
		||||
#define COND_NWAITERS_SHIFT	8
 | 
			
		||||
#define COND_NWAITERS_SHIFT	1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Read-write lock variable attribute data structure.  */
 | 
			
		||||
 
 | 
			
		||||
@@ -19,16 +19,6 @@
 | 
			
		||||
 | 
			
		||||
#include <kernel-features.h>
 | 
			
		||||
 | 
			
		||||
/* In libc.so we do not unconditionally use the lock prefix.  Only if
 | 
			
		||||
   the application is using threads.  */
 | 
			
		||||
#ifndef UP
 | 
			
		||||
# define LOCK \
 | 
			
		||||
	cmpl	$0, __libc_multiple_threads(%rip); 			      \
 | 
			
		||||
	je	0f;							      \
 | 
			
		||||
	lock;								      \
 | 
			
		||||
0:
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* All locks in libc are private.  Use the kernel feature if possible.  */
 | 
			
		||||
#define FUTEX_PRIVATE_FLAG	128
 | 
			
		||||
#ifdef __ASSUME_PRIVATE_FUTEX
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user