(lll_mutex_cond_lock): Add one to value parameter of __lll_lock_wait to reflect reality in the futex syscall.
This commit is contained in:
parent
2b1c0eeae3
commit
4761520e93
|
@ -118,7 +118,10 @@ extern void __lll_lock_wait (int *futex, int val) attribute_hidden;
|
||||||
int __val = atomic_exchange_and_add (__futex, 2); \
|
int __val = atomic_exchange_and_add (__futex, 2); \
|
||||||
__asm __volatile (__lll_acq_instr ::: "memory"); \
|
__asm __volatile (__lll_acq_instr ::: "memory"); \
|
||||||
if (__builtin_expect (__val != 0, 0)) \
|
if (__builtin_expect (__val != 0, 0)) \
|
||||||
__lll_lock_wait (__futex, __val); \
|
/* Note, the val + 1 is kind of ugly here. __lll_lock_wait will add \
|
||||||
|
1 again. But we added 2 to the futex value so this is the right \
|
||||||
|
value which will be passed to the kernel. */ \
|
||||||
|
__lll_lock_wait (__futex, __val + 1); \
|
||||||
})
|
})
|
||||||
|
|
||||||
extern int __lll_timedlock_wait
|
extern int __lll_timedlock_wait
|
||||||
|
|
Loading…
Reference in New Issue