unify the use of FUTEX_PRIVATE
The flag 1<<7 is used in several places for different purposes that are not always easy to distinguish. Mark those usages that correspond to the flag that is used by the kernel for futexes.
This commit is contained in:
committed by
Rich Felker
parent
60ab365cae
commit
d906fa3118
@@ -131,7 +131,7 @@ int __timedwait_cp(volatile int *, int, clockid_t, const struct timespec *, int)
|
||||
void __wait(volatile int *, volatile int *, int, int);
|
||||
static inline void __wake(volatile void *addr, int cnt, int priv)
|
||||
{
|
||||
if (priv) priv = 128;
|
||||
if (priv) priv = FUTEX_PRIVATE;
|
||||
if (cnt<0) cnt = INT_MAX;
|
||||
__syscall(SYS_futex, addr, FUTEX_WAKE|priv, cnt) != -ENOSYS ||
|
||||
__syscall(SYS_futex, addr, FUTEX_WAKE, cnt);
|
||||
|
||||
@@ -14,7 +14,7 @@ int __timedwait_cp(volatile int *addr, int val,
|
||||
int r;
|
||||
struct timespec to, *top=0;
|
||||
|
||||
if (priv) priv = 128;
|
||||
if (priv) priv = FUTEX_PRIVATE;
|
||||
|
||||
if (at) {
|
||||
if (at->tv_nsec >= 1000000000UL) return EINVAL;
|
||||
|
||||
@@ -84,7 +84,7 @@ int pthread_barrier_wait(pthread_barrier_t *b)
|
||||
a_spin();
|
||||
a_inc(&inst->finished);
|
||||
while (inst->finished == 1)
|
||||
__syscall(SYS_futex,&inst->finished,FUTEX_WAIT|128,1,0) != -ENOSYS
|
||||
__syscall(SYS_futex,&inst->finished,FUTEX_WAIT|FUTEX_PRIVATE,1,0) != -ENOSYS
|
||||
|| __syscall(SYS_futex,&inst->finished,FUTEX_WAIT,1,0);
|
||||
return PTHREAD_BARRIER_SERIAL_THREAD;
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ static inline void unlock_requeue(volatile int *l, volatile int *r, int w)
|
||||
{
|
||||
a_store(l, 0);
|
||||
if (w) __wake(l, 1, 1);
|
||||
else __syscall(SYS_futex, l, FUTEX_REQUEUE|128, 0, 1, r) != -ENOSYS
|
||||
else __syscall(SYS_futex, l, FUTEX_REQUEUE|FUTEX_PRIVATE, 0, 1, r) != -ENOSYS
|
||||
|| __syscall(SYS_futex, l, FUTEX_REQUEUE, 0, 1, r);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user