X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=compat_futex.c;h=9e918fe8e2aac035dc39e6e23868410348d02627;hp=0cc2956b66bcf35a5fe0786844e9d133743e6690;hb=b2633d211b186cb201be327ded53ecf523ecf0bd;hpb=c8114d9b8b837fcd7e9ba83fd3d676bd2a70edb9 diff --git a/compat_futex.c b/compat_futex.c index 0cc2956..9e918fe 100644 --- a/compat_futex.c +++ b/compat_futex.c @@ -54,11 +54,11 @@ pthread_cond_t __urcu_compat_futex_cond = PTHREAD_COND_INITIALIZER; int compat_futex_noasync(int32_t *uaddr, int op, int32_t val, const struct timespec *timeout, int32_t *uaddr2, int32_t val3) { - int ret, lockret; + int ret = 0, lockret; /* * Check if NULL. Don't let users expect that they are taken into - * account. + * account. */ assert(!timeout); assert(!uaddr2); @@ -111,6 +111,8 @@ end: * _ASYNC SIGNAL-SAFE_. * For now, timeout, uaddr2 and val3 are unused. * Waiter will busy-loop trying to read the condition. + * It is OK to use compat_futex_async() on a futex address on which + * futex() WAKE operations are also performed. */ int compat_futex_async(int32_t *uaddr, int op, int32_t val, @@ -120,7 +122,7 @@ int compat_futex_async(int32_t *uaddr, int op, int32_t val, /* * Check if NULL. Don't let users expect that they are taken into - * account. + * account. */ assert(!timeout); assert(!uaddr2);