Go to the documentation of this file.
34 #ifndef GRPC_SUPPORT_TLS_GCC_H
35 #define GRPC_SUPPORT_TLS_GCC_H
51 #define GPR_TLS_DECL(name) \
52 static bool name##_inited = false; \
53 static __thread struct gpr_gcc_thread_local name = {0, &(name##_inited)}
55 #define gpr_tls_init(tls) \
57 GPR_ASSERT(*((tls)->inited) == false); \
58 *((tls)->inited) = true; \
62 #define gpr_tls_destroy(tls) \
64 GPR_ASSERT(*((tls)->inited)); \
65 *((tls)->inited) = false; \
68 #define gpr_tls_set(tls, new_value) \
70 GPR_ASSERT(*((tls)->inited)); \
71 (tls)->value = (new_value); \
74 #define gpr_tls_get(tls) \
76 GPR_ASSERT(*((tls)->inited)); \
86 #define GPR_TLS_DECL(name) \
87 static __thread struct gpr_gcc_thread_local name = {0}
89 #define gpr_tls_init(tls) \
92 #define gpr_tls_destroy(tls) \
95 #define gpr_tls_set(tls, new_value) (((tls)->value) = (new_value))
96 #define gpr_tls_get(tls) ((tls)->value)
bool * inited
Definition: tls_gcc.h:48
intptr_t value
Definition: tls_gcc.h:47