[PATCH 2/2] Initialize tunable list with the GLIBC_TUNABLES environment variable
Siddhesh Poyarekar
sid@reserved-bit.com
Mon Jan 11 14:45:00 GMT 2016
On Mon, Jan 11, 2016 at 02:51:36PM +0100, Andreas Schwab wrote:
> Siddhesh Poyarekar <sid@reserved-bit.com> writes:
>
> > void
> > __tunables_init (char **envp)
> > {
> > - /* Empty for now. */
> > + static bool initialized = false;
> > +
> > + if (__glibc_likely (initialized))
> > + return;
>
> Is this supposed to be thread-safe?
This is called only from the libc.so and libpthread.so constructors.
So the first run will always happen exclusively in the main thread
through either library constructor.
Even in case the constructors do get called in parallel in different
threads, they should get synchronized by the dynamic linker load lock,
so you'd never have concurrent calls to __tunables_init that race on
the value of initialized.
Siddhesh
More information about the Libc-alpha
mailing list