diff --git a/man3/error.3 b/man3/error.3 index 7e1d47c2d..7a92a7606 100644 --- a/man3/error.3 +++ b/man3/error.3 @@ -118,6 +118,37 @@ is assigned the address of a function instead of prefixing the message with the program name and colon. The function should print a suitable string to .IR stderr . +.SH ATTRIBUTES +For an explanation of the terms used in this section, see +.BR attributes (7). +.TS +allbox; +lb lb lbw37 +l l l. +Interface Attribute Value +T{ +.BR error () +T} Thread safety MT-Safe locale +T{ +.BR error_at_line () +T} Thread safety T{ +MT-Unsafe race:error_at_line/error_one_per_line locale +T} +.TE + +The internal +.I error_one_per_line +variable is accessed (without any form of synchronization, but since +it's an int used once, it should be safe enough) and, if +.I error_one_per_line +is set nonzero, the internal static variables(not exposed to users) +used to hold the last printed file name and line number are accessed +and modified without synchronization; the update is not atomic and it +occurs before disabling cancellation, so it can be interrupted after +only one of the two variables is modified. After that, +.BR error_at_line (3) +is very much like +.BR error (3). .SH CONFORMING TO These functions and variables are GNU extensions, and should not be used in programs intended to be portable.