diff options
Diffstat (limited to 'nptl/sysdeps')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h index fadf5f96ad..525869b302 100644 --- a/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h +++ b/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h @@ -179,8 +179,17 @@ __lll_mutex_unlock (int *futex) #define lll_mutex_unlock(futex) \ __lll_mutex_unlock(&(futex)) + +static inline void +__attribute__ ((always_inline)) +__lll_mutex_unlock_force (int *futex) +{ + (void) atomic_exchange_rel (futex, 0); + lll_futex_wake (futex, 1); +} #define lll_mutex_unlock_force(futex) \ - lll_futex_wake (&(futex), 1) + __lll_mutex_unlock_force(&(futex)) + #define lll_mutex_islocked(futex) \ (futex != 0) |