mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
htl: Move cleanup stack to variable shared between libc and pthread
If libpthread gets loaded dynamically, the stack needs to already contain the cleanup handlers of the main thread. * htl/libc_pthread_init.c (__pthread_cleanup_stack): New per-thread variable. * htl/Versions (libc): Add __pthread_cleanup_stack as private symbol. * htl/pt-internal.h (struct __pthread): Remove cancelation_handlers field. (__pthread_cleanup_stack): Add variable declaration. * htl/pt-alloc.c (initialize_pthread): Remove initialization of cancelation_handlers field. * htl/pt-cleanup.c (__pthread_get_cleanup_stack): Return the address of __pthread_cleanup_stack instead of that of the cancelation_handlers field. * htl/forward.c: Include <pt-internal.h>. (dummy_list): Remove variable. (__pthread_get_cleanup_stack): Return the address of __pthread_cleanup_stack instead of that of dummy_list.
This commit is contained in:
@ -19,6 +19,8 @@
|
||||
#include <string.h>
|
||||
#include <pthread-functions.h>
|
||||
|
||||
__thread struct __pthread_cancelation_handler *__pthread_cleanup_stack;
|
||||
|
||||
void
|
||||
__libc_pthread_init (const struct pthread_functions *functions)
|
||||
{
|
||||
|
Reference in New Issue
Block a user