Fwd: local equivalent for pthread_once() in glibc?

Florian Weimer fweimer@redhat.com
Wed May 17 09:57:00 GMT 2017


On 04/26/2017 02:40 PM, Adhemerval Zanella wrote:
> Now that we are on the subject, shouldn't we use __libc_once on
> __malloc_initialized?

I think that would be misleading.  The arena selection code assumes that
the main arena has been fully initialized, not just that ptmalloc_init
has run.  ptmalloc_init only performs a partial initialization, the rest
is done through malloc_consolidate (which is again triggered by the
allocation which is part of pthread_create).  If we fix ptmalloc_init to
allow concurrent invocation (although that never would happen), the lack
of full initialization would still be in issue (in the impossible case
that ptmalloc_init ran concurrenctly).

Thanks,
Florian



More information about the Libc-alpha mailing list