mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
nptl: Move stack cache management, __libpthread_freeres into libc
This replaces the FREE_P macro with the __nptl_stack_in_use inline function. stack_list_del is renamed to __nptl_stack_list_del, stack_list_add to __nptl_stack_list_add, __deallocate_stack to __nptl_deallocate_stack, free_stacks to __nptl_free_stacks. It is convenient to move __libpthread_freeres into libc at the same time. This removes the temporary __default_pthread_attr_freeres export and restores full freeres coverage for __default_pthread_attr. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
@ -29,7 +29,15 @@ DEFINE_HOOK (__libc_subfreeres, (void));
|
||||
|
||||
symbol_set_define (__libc_freeres_ptrs);
|
||||
|
||||
extern __attribute__ ((weak)) void __libpthread_freeres (void);
|
||||
extern void __libpthread_freeres (void)
|
||||
#if PTHREAD_IN_LIBC && defined SHARED
|
||||
/* It is possible to call __libpthread_freeres directly in shared
|
||||
builds with an integrated libpthread. */
|
||||
attribute_hidden
|
||||
#else
|
||||
__attribute__ ((weak))
|
||||
#endif
|
||||
;
|
||||
|
||||
void __libc_freeres_fn_section
|
||||
__libc_freeres (void)
|
||||
@ -51,10 +59,7 @@ __libc_freeres (void)
|
||||
/* We run the resource freeing after IO cleanup. */
|
||||
RUN_HOOK (__libc_subfreeres, ());
|
||||
|
||||
/* Call the libpthread list of cleanup functions
|
||||
(weak-ref-and-check). */
|
||||
if (&__libpthread_freeres != NULL)
|
||||
__libpthread_freeres ();
|
||||
call_function_static_weak (__libpthread_freeres);
|
||||
|
||||
#ifdef SHARED
|
||||
__libc_unwind_link_freeres ();
|
||||
|
Reference in New Issue
Block a user