ivykis is a library for asynchronous I/O readiness notification. It is a thin, portable wrapper around OS-provided mechanisms such as /dev/poll, epoll_create(2), kqueue(2), poll(2), and port_create(3C). ivykis was mainly designed for building high-performance network servers, but can be used as building block for any kind of event-driven application that uses poll(2)able file descriptors as its inputs.
Homepage
Download
Recent Releases
0.42.416 May 2019 23:04
minor bugfix:
This release fixes a bug on Linux platforms with glibc = 2.28, where incorrectly marking a symbol provided by an archive library as weak would cause it to be undefined and lead to jumping to address zero at runtime.
0.42.304 May 2018 07:39
minor bugfix:
This release fixes a bug on Solaris where we would inadvertently use the non-threadsafe version of 'errno', and fixes a build/install bug on case-insensitive filesystems.
0.42.218 Oct 2017 00:19
minor bugfix:
This release fixes a crash seen with syslog-ng when unregistering the only remaining active event from within another event's handler function.
0.42.119 Aug 2017 08:44
minor bugfix:
This release fixes a timer fairness handling bug, and a potential crash when initializing a task handler.
0.4229 Apr 2017 11:50
minor bugfix:
This release fixes a timer handling bug in the epoll/port poll methods that was showing up with syslog-ng.
0.4111 Dec 2016 20:01
minor feature:
This release fixes an aarch64/ppc64 linker issue that was causing ivykis to segfault on those platforms, makes libpthread.so an optional dependency, and adds support for catching thread-specific signals to iv_signal.
0.4030 Oct 2016 15:25
major feature:
This release fixes a pthread_sigmask() pointer aliasing issue, contains some build fixes for QNX 6.5.0 and Solaris 11, and significantly speeds up polling for events by using timerfd_create(3) / EVFILT_TIMER / timer_create(3C) to avoid creating and destroying a kernel timer for every fd readiness polling system call.