60#define REDUCT_GC_CHECK(_reduct) \
63 if (REDUCT_UNLIKELY(atomic_load_explicit(&_reduct->global->gc.requested, memory_order_relaxed))) \
76 atomic_store_explicit(&gc->requested,
true, memory_order_relaxed);
#define REDUCT_ALWAYS_INLINE
REDUCT_API void reduct_gc_global_deinit(reduct_gc_global_t *global)
Deinitialize a global gc state.
REDUCT_API void reduct_gc_global_init(reduct_gc_global_t *global)
Initialize a global gc state.
static REDUCT_ALWAYS_INLINE void reduct_gc_request(reduct_gc_global_t *gc)
Request that the garbage collector be ran without immediately running it.
REDUCT_API void reduct_gc(struct reduct *reduct)
Run the garbage collector.
Global garbage collection-related state structure.
Syncronization primitives.