CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
lazyinit.h
Go to the documentation of this file.
1
32
33#pragma once
34
35#include <cx/cx.h>
36
37CX_C_BEGIN
38
44
48typedef void (*LazyInitCallback)(void* userData);
49
50// Internal implementation for lazy initialization (do not call directly)
51void _lazyInitInternal(_Inout_ bool* init, _Inout_ bool* initProgress,
52 _In_ LazyInitCallback initfunc, _In_opt_ void* userData);
53
69_meta_inline void lazyInit(_Inout_ LazyInitState* state, _In_ LazyInitCallback initfunc,
70 _In_opt_ void* userData)
71{
72 if (!state->init)
73 _lazyInitInternal(&state->init, &state->initProgress, initfunc, userData);
74}
75
76CX_C_END
77
void(* LazyInitCallback)(void *userData)
Definition lazyinit.h:48
void lazyInit(LazyInitState *state, LazyInitCallback initfunc, void *userData)
Definition lazyinit.h:69
State tracker for lazy initialization.
Definition lazyinit.h:40
bool init
True after initialization completes.
Definition lazyinit.h:41
bool initProgress
True while initialization is in progress.
Definition lazyinit.h:42