- Add v2 read write handler API that includes the fd in the callback.
- Fix macOS clear write handler bug.
- Switch build system from Makefile to CMake
- Remove bundled xxHash; link to system xxHash via pkg-config
- Add functional test suite with auto checks
- Add GitHub Actions CI pipeline (Linux & macOS)
- Remove version macro from header
- Add API documentation comments to header
- Add Makefile install and uninstall targets
- Remove unused
fdfield fromtev_fd_handler_t - Rewrite header with
#pragma once,extern "C", and doxygen comments - Update submodules
- Add shared library (.so) build target with soversion
- Add
-fPICto default CFLAGS - Pass CFLAGS to submodule builds
- Fix timeout calculation: use
clock_gettime(CLOCK_MONOTONIC)instead ofgettimeofdayto avoid issues with wall clock changes
- Make it safe to free fd handler inside a read handler callback
- Limit epoll/kqueue batch size to 1 to support safe handler removal
- Handle
EPOLLHUPevents by dispatching to the read handler
- Add macOS support via kqueue (alongside Linux epoll)
- Remove unused helper functions
- Replace cHeap submodule with new heap library using position-tracked API
- Use
heap_new/heap_deletewith set_pos/get_pos callbacks for O(log n) removal - Add version macro in header
- Fix clearing the same timeout multiple times by using a handle-to-timer map
- Use opaque timeout handles instead of raw pointers
- Make internal functions static
- Add write handler (
tev_set_write_handler) - Refactor fd handler to support independent read and write handlers per fd
- Manage epoll events (EPOLLIN/EPOLLOUT) based on active handlers
- Initial release
- Event loop with epoll
- Timeout support (
tev_set_timeout,tev_clear_timeout) - Read handler support (
tev_set_read_handler)