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: Saving errno around signal handlers


On 03/04/2014 09:12 PM, Rich Felker wrote:
> On Tue, Mar 04, 2014 at 01:21:50AM -0500, Carlos O'Donell wrote:
>> On 03/03/2014 06:42 PM, Roland McGrath wrote:
>>>> On 02/28/2014 10:19 PM, Roland McGrath wrote:
>>>>>> POSIX has green-lighted saving errno around signal handlers.
>>>>>
>>>>> I don't even know what you might think that means.  Whenever talking about
>>>>> a change in a standard, provide a reference to the actual change in the
>>>>> actual standard.
>>>>
>>>> It's about this change:
>>>>
>>>>    <http://austingroupbugs.net/view.php?id=807>
>>>
>>> So the standard is not going to be changed to require that signal handling
>>> save and restore errno implicitly.  (It would have been a highly suspect
>>> change.)  It's being clarified to say that the implementation is free to do
>>> so.  But applications cannot assume any such thing, so any such future
>>> application remains as broken as such applications are today.  I see no
>>> rationale even slightly compelling for making libc do this magic.  In fact,
>>> it would clearly do harm to people developing applications on glibc-based
>>> systems but intending to write POSIX-conformant code.
>>
>> In that it would mask potential errors in the signal handling code?
> 
> In fairness, I believe these errors are already "masked" by being
> extremely rare race conditions...
> 
> Still, I'm largely against this proposal for an invasive, error-prone,
> signal-latency-adding change to glibc just to mask the 0.0001% of
> errno+signal handler race conditions that actually reach *buggy*
> applications...

Neither of us have data, at least none that I've seen, to backup either
side of the claim.

Cheers,
Carlos.


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