This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/2] Initialize tunable list with the GLIBC_TUNABLES environment variable


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]