mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	[BZ #14652] When a thread waiting in pthread_cond_wait with a PI mutex is cancelled after it has returned successfully from the futex syscall but just before async cancellation is disabled, it enters its cancellation handler with the mutex held and simply calling a mutex_lock again will result in a deadlock. Hence, it is necessary to see if the thread owns the lock and try to lock it only if it doesn't.
		
			
				
	
	
		
			10 lines
		
	
	
		
			261 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			10 lines
		
	
	
		
			261 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #include <pthreadP.h>
 | |
| 
 | |
| -- These PI macros are used by assembly code.
 | |
| 
 | |
| MUTEX_KIND	offsetof (pthread_mutex_t, __data.__kind)
 | |
| ROBUST_BIT	PTHREAD_MUTEX_ROBUST_NORMAL_NP
 | |
| PI_BIT		PTHREAD_MUTEX_PRIO_INHERIT_NP
 | |
| PS_BIT		PTHREAD_MUTEX_PSHARED_BIT
 | |
| TID_MASK	FUTEX_TID_MASK
 |