]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
nptl: Replace lll_futex_{timed_}wait by futex-internal.h
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 23 Nov 2020 13:13:42 +0000 (10:13 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 25 Nov 2020 13:43:18 +0000 (10:43 -0300)
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>
nptl/lowlevellock.c
nptl/pthread_mutex_lock.c
nptl/pthread_mutex_setprioceiling.c
nptl/pthread_mutex_timedlock.c

index f69547a235b5bed6be82274749b35e2ca819b4ad..973df4d03a770c827330630008aff5a9865b2da4 100644 (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
index 1f137f6201a49be824fdd88b3a663a8063ffde0b..965c5a3f4af5b4780af3958811c1ea559f58ecc2 100644 (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)
index 521da72622e902feb1ab7551128bb0989b61d81d..cbef202579d09de88f2a7d00ef7fcd099af88ef7 100644 (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)
index e643eab258414eff2db7b74a2babc83d5ec9ede4..343acf6107fdc330086e28b11b2e0aa667d887ab 100644 (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,