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: [RFC PATCH glibc] pthread_setspecific: Provide signal-safety across keys


On 10/17/2017 03:09 PM, Mathieu Desnoyers wrote:
> The __thread variable sits in a library shared object, so it's not
> possible to use the initial-exec model. I work around this by touching
> the object once in a library constructor before other threads are
> launched. AFAIU, this takes care of performing the TLS lazy fixup.

You *can* use IE model, but doing so *might* cause your library not to
load if we run out of static TLS space (some amount is reserved by the
static linker for loading such libraries that use IE model TLS).
The static TLS space is therefore something like a distro-wide global
resources :-)

However, we don't recommend IE model if you can get away with the
performance of GD model and can manage to touch the variable early
before it might be used in a signal handler.

-- 
Cheers,
Carlos.


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