diff options
| author | Florian Weimer <fweimer@redhat.com> | 2025-11-11 18:20:10 +0100 |
|---|---|---|
| committer | Florian Weimer <fweimer@redhat.com> | 2025-11-11 18:20:10 +0100 |
| commit | 2eff71d28946896d085fbd0836ed1394bb55d352 (patch) | |
| tree | 1b444355b866d0884d3b6aa573a36e877009a2b2 /manual | |
| parent | 71d9f47b5a7a22a0576aea699cfd1820a83fd41b (diff) | |
stdlib: Do not define once_flag, ONCE_FLAG_INIT for C++
The definition of once_flag conflicts with std::once_flag in
if “using namespace std;” is active.
Updates commit a7ddbf456d97ac8d1aa7afd735e196a1488bd874
("Add once_flag, ONCE_FLAG_INIT and call_once to stdlib.h for C23").
Suggested-by: Jonathan Wakely <jwakely@redhat.com>
Reviewed-by: Collin Funk <collin.funk1@gmail.com>
Diffstat (limited to 'manual')
| -rw-r--r-- | manual/threads.texi | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/manual/threads.texi b/manual/threads.texi index 1e9be32d66..b9d12479ca 100644 --- a/manual/threads.texi +++ b/manual/threads.texi @@ -23,8 +23,15 @@ POSIX threads. This section describes the @glibcadj{} ISO C threads implementation. To have a deeper understanding of this API, it is strongly recommended to read ISO/IEC 9899:2011, section 7.26, in which ISO C threads were -originally specified. All types and function prototypes are declared -in the header file @file{threads.h}. +originally specified. + +All types and function prototypes are declared in the header file +@file{threads.h}. When compiling for C, some functionality is also +available in @file{stdlib.h}. + +It is recommended that GNU systems use the functionality in +@file{pthread.h} instead of @file{thread.h}, as they are more portable +between C and C++. @menu * ISO C Threads Return Values:: Symbolic constants that represent a @@ -203,11 +210,17 @@ called once in the presence of multiple, potentially calling threads. @deftp {Data Type} once_flag @standards{C11, threads.h} A complete object type capable of holding a flag used by @code{call_once}. + +As of C23, @code{once_flag} is also defined in @file{stdlib.h}, +but only for C, not for C++. @end deftp @defvr Macro ONCE_FLAG_INIT @standards{C11, threads.h} This value is used to initialize an object of type @code{once_flag}. + +As of C23, @code{ONCE_FLAG_INIT} is also defined in @file{stdlib.h}, +but only for C, not for C++. @end defvr @deftypefun void call_once (once_flag *@var{flag}, void (*@var{func}) (void)) |
