78 #ifndef GOOGLE_PROTOBUF_STUBS_ONCE_H__ 79 #define GOOGLE_PROTOBUF_STUBS_ONCE_H__ 88 #ifdef GOOGLE_PROTOBUF_NO_THREAD_SAFETY 90 typedef bool ProtobufOnceType;
92 #define GOOGLE_PROTOBUF_ONCE_INIT false 101 template <
typename Arg>
102 inline void GoogleOnceInit(ProtobufOnceType* once,
void (*init_func)(Arg),
120 #define GOOGLE_PROTOBUF_ONCE_INIT ::google::protobuf::ONCE_STATE_UNINITIALIZED 128 template <
typename Arg>
129 inline void GoogleOnceInit(ProtobufOnceType* once,
void (*init_func)(Arg*),
132 internal::FunctionClosure1<Arg*>
func(init_func,
false, arg);
137 #endif // GOOGLE_PROTOBUF_NO_THREAD_SAFETY 139 class GoogleOnceDynamic {
148 void Init(
void (*func_with_arg)(
T*),
T* arg) {
149 GoogleOnceInit<T>(&this->state_,
154 ProtobufOnceType state_;
157 #define GOOGLE_PROTOBUF_DECLARE_ONCE(NAME) \ 158 ::google::protobuf::ProtobufOnceType NAME = GOOGLE_PROTOBUF_ONCE_INIT 163 #endif // GOOGLE_PROTOBUF_STUBS_ONCE_H__ void GoogleOnceInitImpl(ProtobufOnceType *once, Closure *closure)
Definition: once.cc:72
Atomic32 Acquire_Load(volatile const Atomic32 *ptr)
Definition: atomicops_internals_arm64_gcc.h:167
#define GOOGLE_PROTOBUF_ONCE_INIT
Definition: once.h:120
void GoogleOnceInit(ProtobufOnceType *once, void(*init_func)())
Definition: once.cc:65
TestSubObjConstructor T
Definition: TestTypedefs.idl:84
GLenum func
Definition: gl2.h:481
intptr_t AtomicWord
Definition: atomicops.h:92
Definition: __init__.py:1
boolean once
Definition: EventTarget.idl:40
void Init(int s, int n)
Definition: towers.c:162
#define LIBPROTOBUF_EXPORT
Definition: port.h:97
Definition: gflags_completions.h:115