bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH glibc 5/12] htl: Fix semaphore reference


From: Samuel Thibault
Subject: Re: [RFC PATCH glibc 5/12] htl: Fix semaphore reference
Date: Sun, 12 Feb 2023 15:57:39 +0100
User-agent: NeoMutt/20170609 (1.8.3)

Applied, thanks!

Sergey Bugaev, le dim. 12 févr. 2023 14:10:36 +0300, a ecrit:
> 'sem' is the opaque 'sem_t', 'isem' is the actual 'struct new_sem'.
> 
> Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
> ---
>  sysdeps/htl/sem-timedwait.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/sysdeps/htl/sem-timedwait.c b/sysdeps/htl/sem-timedwait.c
> index 8f2df6e7..9974e9ae 100644
> --- a/sysdeps/htl/sem-timedwait.c
> +++ b/sysdeps/htl/sem-timedwait.c
> @@ -60,7 +60,7 @@ __sem_timedwait_internal (sem_t *restrict sem,
>    int cancel_oldtype = LIBC_CANCEL_ASYNC();
>  
>  #if __HAVE_64B_ATOMICS
> -  uint64_t d = atomic_fetch_add_relaxed (&sem->data,
> +  uint64_t d = atomic_fetch_add_relaxed (&isem->data,
>                (uint64_t) 1 << SEM_NWAITERS_SHIFT);
>  
>    pthread_cleanup_push (__sem_wait_cleanup, isem);
> @@ -72,11 +72,11 @@ __sem_timedwait_internal (sem_t *restrict sem,
>         /* No token, sleep.  */
>         if (timeout)
>           err = __lll_abstimed_wait_intr (
> -                   ((unsigned int *) &sem->data) + SEM_VALUE_OFFSET,
> +                   ((unsigned int *) &isem->data) + SEM_VALUE_OFFSET,
>                     0, timeout, flags, clock_id);
>         else
>           err = __lll_wait_intr (
> -                   ((unsigned int *) &sem->data) + SEM_VALUE_OFFSET,
> +                   ((unsigned int *) &isem->data) + SEM_VALUE_OFFSET,
>                     0, flags);
>  
>         if (err != 0 && err != KERN_INVALID_ARGUMENT)
> @@ -92,12 +92,12 @@ __sem_timedwait_internal (sem_t *restrict sem,
>           }
>  
>         /* Token changed */
> -       d = atomic_load_relaxed (&sem->data);
> +       d = atomic_load_relaxed (&isem->data);
>       }
>        else
>       {
>         /* Try to acquire and dequeue.  */
> -       if (atomic_compare_exchange_weak_acquire (&sem->data,
> +       if (atomic_compare_exchange_weak_acquire (&isem->data,
>             &d, d - 1 - ((uint64_t) 1 << SEM_NWAITERS_SHIFT)))
>           {
>             /* Success */
> -- 
> 2.39.1
> 
> 

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]