123456789101112131415161718192021222324252627282930313233343536 |
- ({ \
- static bool __section(".data.once") __already_done; \
- bool __ret_cond = !!(condition); \
- bool __ret_once = false; \
- \
- if (unlikely(__ret_cond && !__already_done)) { \
- __already_done = true; \
- __ret_once = true; \
- } \
- unlikely(__ret_once); \
- })
- ({ \
- bool __ret_do_once = !!(condition); \
- \
- if (__ONCE_LITE_IF(__ret_do_once)) \
- func(__VA_ARGS__); \
- \
- unlikely(__ret_do_once); \
- })
|