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: Async-signal-safe access to __thread variables from dlopen()ed libraries?


On Thu, Sep 19, 2013 at 9:52 PM, Carlos O'Donell <carlos@redhat.com> wrote:
>
>> On Wed, Jun 13, 2012 at 6:08 PM, Ian Lance Taylor <iant@google.com> wrote:
>>
>>> We are currently in an unpleasant situation where it is very easy and
>>> natural to use TLS variables--you just refer to them by name--and using
>>> them in a signal handler almost always works just fine.  Except that in
>>> some highly specific but not completely implausible circumstances it
>>> crashes incomprehensibly.  This is not a good thing, it's a lurking time
>>> bomb.
>
> I don't buy this argument. There are *lots* of lurking bombs in C and
> POSIX that can crash your application. This would be just another situation
> where we need to document that TLS is not AS-safe (add it to the list of
> non-AS-safe things that Alex is documenting in the manual).

I suppose I don't buy your counter-argument.  The fact that many
features of C are difficult to use correctly is not an argument for
adding additional features that are difficult to use correctly.

Clearly it is technically infeasible to use some features from a
signal handler.  I'm not going to waste time suggesting that it be
possible to call malloc from a signal handler.  However, making it
safe to use __thread variables in a signal handler is not technically
infeasible.  If we fail to support it, we're just being lazy.

Ian


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