From: Jakub Jelinek Date: Fri, 30 May 2003 13:46:04 +0000 (+0000) Subject: (__lll_mutex_cond_lock): New function. (lll_mutex_cond_lock): Define. X-Git-Tag: upstream/2.30~19218 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ef276e64724bd5db5acf46913c0a424b0bc9ca06;p=external%2Fglibc.git (__lll_mutex_cond_lock): New function. (lll_mutex_cond_lock): Define. --- diff --git a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h index 4d95319..7934c0e 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h +++ b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h @@ -142,6 +142,19 @@ __lll_mutex_lock (int *futex) } #define lll_mutex_lock(futex) __lll_mutex_lock (&(futex)) +static inline void +__attribute__ ((always_inline)) +__lll_mutex_cond_lock (int *futex) +{ + int oldval; + int newval; + + lll_compare_and_swap (futex, oldval, newval, "lr %2,%1; ahi %2,2"); + if (oldval > 0) + ___lll_mutex_lock (futex, newval); +} +#define lll_mutex_cond_lock(futex) __lll_mutex_cond_lock (&(futex)) + extern int ___lll_mutex_timedlock (int *, const struct timespec *, int) attribute_hidden;