1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00
* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
	store mutex address if the current value is ~0l.
	* sysdeps/pthread/pthread_cond_timedwait.c
	(__pthread_cond_timedwait): Likewise.
	* sysdeps/pthread/pthread_cond_broadcast.c
	(__pthread_cond_broadcast): Don't use requeue for pshared
	condvars.

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
	(__pthread_cond_wait): Don't store mutex address if the current
	value is ~0l.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
	(__pthread_cond_broadcast): Don't use requeue for pshared
	condvars.

	* pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
	element with ~0l for pshared condvars, with NULL otherwise.

	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
	(__pthread_cond_wait): Don't store mutex address if the current
	value is ~0l.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
	(__pthread_cond_broadcast): Don't use requeue for pshared
	condvars.
This commit is contained in:
Ulrich Drepper
2003-11-21 10:00:11 +00:00
parent bf68b2366d
commit e42a990ecc
11 changed files with 72 additions and 23 deletions

View File

@ -36,6 +36,8 @@ __pthread_cond_init (cond, cond_attr)
cond->__data.__total_seq = 0;
cond->__data.__wakeup_seq = 0;
cond->__data.__woken_seq = 0;
cond->__data.__mutex = (icond_attr == NULL || (icond_attr->value & 1) == 0
? NULL : (void *) ~0l);
return 0;
}