diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-11-23 10:38:12 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-11-25 10:43:18 -0300 |
commit | b45b1c5ba1df4d0315ffdd00a040ff9bc0597a8d (patch) | |
tree | 635d26de59ee085627b6b36ee4116c27f74563c6 /nptl | |
parent | 2a45be88ed4753a9756d840b3182a87f2ae1200b (diff) | |
download | glibc-b45b1c5ba1df4d0315ffdd00a040ff9bc0597a8d.zip glibc-b45b1c5ba1df4d0315ffdd00a040ff9bc0597a8d.tar.gz glibc-b45b1c5ba1df4d0315ffdd00a040ff9bc0597a8d.tar.bz2 |
nptl: Replace lll_futex_wake with futex-internal.h
The idea is to make NPTL implementation to use on the functions
provided by futex-internal.h.
Checked on x86_64-linux-gnu and i686-linux-gnu.
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/pthread_mutex_setprioceiling.c | 4 | ||||
-rw-r--r-- | nptl/pthread_mutex_unlock.c | 6 | ||||
-rw-r--r-- | nptl/sem_post.c | 9 |
3 files changed, 7 insertions, 12 deletions
diff --git a/nptl/pthread_mutex_setprioceiling.c b/nptl/pthread_mutex_setprioceiling.c index cbef202..8f1d6e1 100644 --- a/nptl/pthread_mutex_setprioceiling.c +++ b/nptl/pthread_mutex_setprioceiling.c @@ -116,8 +116,8 @@ pthread_mutex_setprioceiling (pthread_mutex_t *mutex, int prioceiling, | (prioceiling << PTHREAD_MUTEX_PRIO_CEILING_SHIFT); atomic_full_barrier (); - lll_futex_wake (&mutex->__data.__lock, INT_MAX, - PTHREAD_MUTEX_PSHARED (mutex)); + futex_wake ((unsigned int *)&mutex->__data.__lock, INT_MAX, + PTHREAD_MUTEX_PSHARED (mutex)); return 0; } diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c index 2b4abb8..56f1732 100644 --- a/nptl/pthread_mutex_unlock.c +++ b/nptl/pthread_mutex_unlock.c @@ -162,7 +162,7 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr) private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex); if (__glibc_unlikely ((atomic_exchange_rel (&mutex->__data.__lock, 0) & FUTEX_WAITERS) != 0)) - lll_futex_wake (&mutex->__data.__lock, 1, private); + futex_wake ((unsigned int *) &mutex->__data.__lock, 1, private); /* We must clear op_pending after we release the mutex. FIXME However, this violates the mutex destruction requirements @@ -332,8 +332,8 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr) &oldval, newval)); if ((oldval & ~PTHREAD_MUTEX_PRIO_CEILING_MASK) > 1) - lll_futex_wake (&mutex->__data.__lock, 1, - PTHREAD_MUTEX_PSHARED (mutex)); + futex_wake ((unsigned int *)&mutex->__data.__lock, 1, + PTHREAD_MUTEX_PSHARED (mutex)); int oldprio = newval >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT; diff --git a/nptl/sem_post.c b/nptl/sem_post.c index 88cfc24..5dbfb3a 100644 --- a/nptl/sem_post.c +++ b/nptl/sem_post.c @@ -84,19 +84,14 @@ int attribute_compat_text_section __old_sem_post (sem_t *sem) { - int *futex = (int *) sem; + unsigned int *futex = (unsigned int *) sem; /* We must need to synchronize with consumers of this token, so the atomic increment must have release MO semantics. */ atomic_write_barrier (); (void) atomic_increment_val (futex); /* We always have to assume it is a shared semaphore. */ - int err = lll_futex_wake (futex, 1, LLL_SHARED); - if (__builtin_expect (err, 0) < 0) - { - __set_errno (-err); - return -1; - } + futex_wake (futex, 1, LLL_SHARED); return 0; } compat_symbol (libpthread, __old_sem_post, sem_post, GLIBC_2_0); |