78 #define SOL_REENTRANT_CALL(handle) \
79 for (bool reentrant_run = true; reentrant_run; reentrant_run = false) \
80 for (bool reentrant_was_used = (handle).in_use; reentrant_run; \
81 (handle).in_use = reentrant_was_used, reentrant_run = false) \
82 for ((handle).in_use = true; reentrant_run; reentrant_run = false)
93 #define SOL_REENTRANT_FREE(reentrant) \
94 if (({ (reentrant).delete_me = true; !(reentrant).in_use; }))
Structure containing the flags for safely freeing a larger structure.
Definition: sol-reentrant.h:43
bool delete_me
Structure is stale and should be freed as soon as possible.
Definition: sol-reentrant.h:51
struct sol_reentrant sol_reentrant
Structure containing the flags for safely freeing a larger structure.
bool in_use
Structure is in use.
Definition: sol-reentrant.h:47