int kl_event_mod(KlEventLoop *loop, int fd, KlEventMask mask, void *udata)
Modify the event mask for a registered fd.
int kl_event_init(KlEventLoop *loop)
Initialize the platform event loop (epoll/kqueue/io_uring).
int kl_event_wait(KlEventLoop *loop, KlEvent *out, int max, int timeout_ms)
Wait for events.
KlEventMask
Definition event.h:6
@ KL_EVENT_WRITE
Definition event.h:8
@ KL_EVENT_READ
Definition event.h:7
int kl_event_add(KlEventLoop *loop, int fd, KlEventMask mask, void *udata)
Register a file descriptor for events.
int kl_event_del(KlEventLoop *loop, int fd)
Remove a file descriptor from the event loop.
void kl_event_close(KlEventLoop *loop)
Close and clean up the event loop.
Bring-your-own allocator vtable.
Definition allocator.h:12
KlAllocator * alloc
Definition event.h:19
void * _backend
Definition event.h:18
int fd
Definition event.h:17
void * udata
Definition event.h:12
KlEventMask ready
Definition event.h:13