Message ID | 20230212111044.610942-6-bugaevc@gmail.com |
---|---|
State | New |
Headers | show |
Series | Towards glibc on x86_64-gnu | expand |
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 > >
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 */
'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(-)