nptl: Replace lll_futex_{timed_}wait by 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>
This commit is contained in:
Adhemerval Zanella 2020-11-23 10:13:42 -03:00
parent 5289cec4b8
commit 878fe624d4
4 changed files with 14 additions and 12 deletions

View File

@ -18,7 +18,7 @@
<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <lowlevellock.h>
#include <futex-internal.h>
#include <atomic.h>
#include <stap-probe.h>
@ -32,7 +32,7 @@ __lll_lock_wait_private (int *futex)
{
futex:
LIBC_PROBE (lll_lock_wait_private, 1, futex);
lll_futex_wait (futex, 2, LLL_PRIVATE); /* Wait if *futex == 2. */
futex_wait ((unsigned int *) futex, 2, LLL_PRIVATE); /* Wait if *futex == 2. */
}
}
@ -49,7 +49,7 @@ __lll_lock_wait (int *futex, int private)
{
futex:
LIBC_PROBE (lll_lock_wait, 1, futex);
lll_futex_wait (futex, 2, private); /* Wait if *futex == 2. */
futex_wait ((unsigned int *) futex, 2, private); /* Wait if *futex == 2. */
}
}
#endif

View File

@ -307,8 +307,8 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
assume_other_futex_waiters |= FUTEX_WAITERS;
/* Block using the futex and reload current lock value. */
lll_futex_wait (&mutex->__data.__lock, oldval,
PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
futex_wait ((unsigned int *) &mutex->__data.__lock, oldval,
PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
oldval = mutex->__data.__lock;
}
@ -568,8 +568,9 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
break;
if (oldval != ceilval)
lll_futex_wait (&mutex->__data.__lock, ceilval | 2,
PTHREAD_MUTEX_PSHARED (mutex));
futex_wait ((unsigned int * ) &mutex->__data.__lock,
ceilval | 2,
PTHREAD_MUTEX_PSHARED (mutex));
}
while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
ceilval | 2, ceilval)

View File

@ -21,6 +21,7 @@
#include <errno.h>
#include <pthreadP.h>
#include <atomic.h>
#include <futex-internal.h>
int
@ -84,8 +85,8 @@ pthread_mutex_setprioceiling (pthread_mutex_t *mutex, int prioceiling,
break;
if (oldval != ceilval)
lll_futex_wait (&mutex->__data.__lock, ceilval | 2,
PTHREAD_MUTEX_PSHARED (mutex));
futex_wait ((unsigned int *) &mutex->__data.__lock, ceilval | 2,
PTHREAD_MUTEX_PSHARED (mutex));
}
while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
ceilval | 2, ceilval)

View File

@ -561,9 +561,9 @@ __pthread_mutex_clocklock_common (pthread_mutex_t *mutex,
goto failpp;
}
lll_futex_timed_wait (&mutex->__data.__lock,
ceilval | 2, &rt,
PTHREAD_MUTEX_PSHARED (mutex));
__futex_abstimed_wait64 (
(unsigned int *) &mutex->__data.__lock, clockid,
ceilval | 2, &rt, PTHREAD_MUTEX_PSHARED (mutex));
}
}
while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,