mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
nptl: Consolidate async cancel enable/disable implementation in libc
Previously, the source file nptl/cancellation.c was compiled multiple times, for libc, libpthread, librt. This commit switches to a single implementation, with new __pthread_enable_asynccancel@@GLIBC_PRIVATE, __pthread_disable_asynccancel@@GLIBC_PRIVATE exports. The almost-unused CANCEL_ASYNC and CANCEL_RESET macros are replaced by LIBC_CANCEL_ASYNC and LIBC_CANCEL_ASYNC macros. They call the __pthread_* functions unconditionally now. The macros are still needed because shared code uses them; Hurd has different definitions. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
@ -353,7 +353,7 @@ START_THREAD_DEFN
|
||||
have ownership (see CONCURRENCY NOTES above). */
|
||||
if (__glibc_unlikely (pd->stopped_start))
|
||||
{
|
||||
int oldtype = CANCEL_ASYNC ();
|
||||
int oldtype = LIBC_CANCEL_ASYNC ();
|
||||
|
||||
/* Get the lock the parent locked to force synchronization. */
|
||||
lll_lock (pd->lock, LLL_PRIVATE);
|
||||
@ -363,7 +363,7 @@ START_THREAD_DEFN
|
||||
/* And give it up right away. */
|
||||
lll_unlock (pd->lock, LLL_PRIVATE);
|
||||
|
||||
CANCEL_RESET (oldtype);
|
||||
LIBC_CANCEL_RESET (oldtype);
|
||||
}
|
||||
|
||||
LIBC_PROBE (pthread_start, 3, (pthread_t) pd, pd->start_routine, pd->arg);
|
||||
|
Reference in New Issue
Block a user