Consensus on MT-, AS- and AC-Safety docs.
Ondřej Bílka
neleai@seznam.cz
Wed Nov 20 21:14:00 GMT 2013
On Tue, Nov 19, 2013 at 10:39:22PM +0000, Joseph S. Myers wrote:
> On Tue, 19 Nov 2013, Carlos O'Donell wrote:
>
> > Regarding the documenting of a bug for which a patch exists, that is
> > now in Alex's court to remove the documentation for that since you've
> > just checked in your patch for powerpc-nofpu floating point state
> > after Adhemerval's (IBM) review.
>
> Although the simfpu annotations are now obsolete, there's still I think a
> use for another annotation or two for affected functions, as a matter of
> AS-Safety not MT-Safety:
>
> * libm functions generally may set the thread-local errno. If a signal
> handler calls such a function without saving and restoring errno, whatever
> code in the thread was interrupted may see an unexpected errno change, and
> libc code may not be robust against errno changing asynchronously during a
> libc function. (I don't know if there are functions beyond the libm and
> strtod/atof families that are AS-Safe but with an errno caveat.)
>
This could be solved by wrapping a handler in function that saves and
restores errno. You could make functions also safe in this regard or
decide that implementing solution is too expensive.
More information about the Libc-alpha
mailing list