160 uint32_t timeout_ms);
void sys_event_queue_deinit(sys_event_queue_t *queue)
Deinitialize an event queue and release its resources.
size_t sys_event_queue_size(sys_event_queue_t *queue)
Return the current event count.
bool sys_event_queue_try_push(sys_event_queue_t *queue, sys_event_t event)
Try to push an event without overwriting.
bool sys_event_queue_unlock(sys_event_queue_t *queue)
Unlock a queue after manual inspection.
bool sys_event_queue_push(sys_event_queue_t *queue, sys_event_t event)
Push an event, overwriting the oldest entry if the queue is full.
sys_event_t sys_event_queue_timed_pop(sys_event_queue_t *queue, uint32_t timeout_ms)
Pop the next event with a timeout.
bool sys_event_queue_lock(sys_event_queue_t *queue)
Lock a queue for manual inspection.
bool sys_event_queue_empty(sys_event_queue_t *queue)
Report whether a queue is empty.
void sys_event_queue_shutdown(sys_event_queue_t *queue)
Prevent future pushes and wake blocked consumers.
sys_event_queue_t * sys_event_queue_init(size_t capacity)
Allocate a new event queue.
struct sys_event_queue_t sys_event_queue_t
Opaque event queue.
void * sys_event_t
Event payload stored in a queue.
sys_event_t sys_event_queue_peek(sys_event_queue_t *queue)
Peek at the next queued event without removing it.
sys_event_t sys_event_queue_try_pop(sys_event_queue_t *queue)
Pop the next event without blocking.
sys_event_t sys_event_queue_pop(sys_event_queue_t *queue)
Pop the next event, blocking until one is available or shutdown.