![]() |
Xyris
0.5
|
Data Structures | |
struct | cxaguard |
Typedefs | |
typedef typedef__extension__ struct cxaguard | __guard |
Functions | |
int | __cxa_guard_acquire (__guard *g) |
void | __cxa_guard_release (__guard *g) |
void | __cxa_guard_abort (__guard *g) |
Variables | |
Mutex | cxaGuard ("cxaguard") |
Special thanks to the LLVM maintainers and Apple for their fantastic comments explaining what these functions are supposed to do, as well as providing implementation inspiration. See the link at the top of this source file for details.
typedef typedef__extension__ struct cxaguard __cxxabiv1::__guard |
void __cxxabiv1::__cxa_guard_abort | ( | __guard * | g | ) |
void __cxxabiv1::__cxa_guard_release | ( | __guard * | g | ) |
Mutex __cxxabiv1::cxaGuard("cxaguard") |
All static object initializations are protected by the single, global, recursive mutex. The recursive mutex is apparently required to enable nested objects initialization
FIXME: This needs to be a recursive lock when those are added