[PATCH v2 5/6] nptl: Cleanup cancellation macros
Siddhesh Poyarekar
siddhesh@gotplt.org
Sat Dec 29 02:37:00 GMT 2018
On 28/12/18 6:32 AM, Adhemerval Zanella wrote:
> This patch wraps all uses of *_{enable,disable}_asynccancel and
> and *_CANCEL_{ASYNC,RESET} in either already provided macros
> (lll_futex_timed_wait_cancel) or creates new ones if the
> functionality is not provided (SYSCALL_CANCEL_NCS, lll_futex_wait_cancel,
> and lll_futex_timed_wait_cancel).
>
> Also for some generic implementations, the direct call of the macros
> are removed since the underlying symbols are suppose to provide
> cancellation support.
>
> This is a priliminary patch intended to simplify the work required
> for BZ#12683 fix. It is a refactor change, no semantic changes are
> expected.
>
> Checked on x86_64-linux-gnu and i686-linux-gnu.
>
> * nptl/pthread_join_common.c (__pthread_timedjoin_ex): Use
> lll_wait_tid with timeout.
> * nptl/sem_wait.c (__old_sem_wait): Use lll_futex_wait_cancel.
> * sysdeps/nptl/aio_misc.h (AIO_MISC_WAIT): Use
> futex_reltimed_wait_cancelable for cancelabla mode.
> * sysdeps/nptl/gai_misc.h (GAI_MISC_WAIT): Likewise.
> * sysdeps/posix/open64.c (__libc_open64): Do not call cancelation
> macros.
> * sysdeps/posix/sigwait.c (__sigwait): Likewise.
> * sysdeps/posix/waitid.c (__sigwait): Likewise.
> * sysdeps/unix/sysdep.h (__SYSCALL_CANCEL_CALL,
> SYSCALL_CANCEL_NCS): New macro.
> * sysdeps/nptl/lowlevellock.h (lll_wait_tid): Add timeout argument.
> (lll_timedwait_tid): Remove macro.
> * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_wait_tid):
> Likewise.
> (lll_timedwait_tid): Likewise.
> * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_wait_tid):
> Likewise.
> (lll_timedwait_tid): Likewise.
> * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_wait_tid):
> Likewise.
> (lll_timedwait_tid): Likewise.
> * sysdeps/unix/sysv/linux/clock_nanosleep.c (__clock_nanosleep):
> Use INTERNAL_SYSCALL_CANCEL.
> * sysdeps/unix/sysv/linux/futex-internal.h
> (futex_reltimed_wait_cancelable): Use LIBC_CANCEL_{ASYNC,RESET}
> instead of __pthread_{enable,disable}_asynccancel.
> * sysdeps/unix/sysv/linux/lowlevellock-futex.h
> (lll_futex_wait_cancel): New macro.
OK.
Siddhesh
More information about the Libc-alpha
mailing list