Releases: troglobit/libuev
Releases · troglobit/libuev
libuEv v2.4.1
Changes
- Update README with list of moden Linux APIs used
Fixes
- Fix #27: possible buffer overrun in
uev_run()
, found by Steve Palmer
libuEv v2.4.0
Please note, this release is a major ABI bump due to changes in uev_t
which requires recompiling all programs that use libuEv.
Also, libuEv is built for 64 bit time_t
, this means all applications that link with libuEv also must be built with the same build flags. This applies in particular to systems with GLIBC v2.34, which now require applications to add the following to their CPPFLAGS
:
CPPFLAGS += -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64
Applications that use pkg-config
will get these extra flags from the libuev.pc
file in the distribution archive.
Changes
- More examples added for fork + signals + timer
- Add
struct signalfd_siginfo
touev_t
, valid for signal watchers. Now more metadata is available to signal callbacks
Fixes
- Fix #24: Replace obsolete autotools macro, by Otto Urpelainen
- Fix #25: GLIBC v2.34 require
-D_FILE_OFFSET_BITS=64
for applications and libraries that want a 64-bittime_t
. Affects library and test programs used formake check
, as well as all other applications that link with libuEv, so thelibuev.pc
file is also updated - Fix error handling in callbacks in examples
Packages for Debian 10, or later, and compatible Ubuntu releases, available at https://deb.troglobit.com/
libuEv v2.3.2
Changes
- Copyright updates, including LICENSE file, year + author last name
- Add tar.gz archives to distribution
- Enable .sha256 checksums for all tarballs
Fixes
- Debian packaging fixes only
libuEv v2.3.1
Fixes
- Debian packaging fixes only.
libuEv v2.3.0
Changes
- Support for Linux eventfd,
uev_event_*()
see API.md for details
libuEv v2.2.0
NOTE: You now have to explicitly include sys/queue.h
, or provide a local version of queue.h
, if your application depends on it.
Changes
- Replaced BSD
queue.h
doubly-linked lst API with own implementation. Making libuEv stand-alone, no longer imposing any particular version ofqueue.h
on the user - Enforce
-std=gnu11
to unlocktypeof()
in older GCC versions - Code cleanup
Fixes
- Fix missing header deps. in
Makefile.am
, library did not rebuild properly if any of the local header files were changed
libuEv v2.1.3
Changes
- Update joystick example, use first device,
/dev/input/js0
- Minor refactor of
uev_exit()
, use_SAFE
macros to traverse list of watchers instead ofwhile()
- New API test to verify that
uev_exit()
terminates properly - Make
uev_signal_stop()
idempotent
Fixes
- Let
uev_timer_stop()
callclose()
on the timerfd directly, do not calluev_timer_set()
since that may cause lockups or hangs
libuEv v2.1.2
Changes
- Minor refactor of event loop after fixing the nasty use-after-free bug in v2.1.1. Code can now be collapsed and noticeably simplified
Fixes
- Issue #17: Check if
AM_PROG_AR
macro exists before calling it, fixes problem building libuEv on systems with older autoconf + automake. Patch by Markus Svilans - Fix minor issue with unit tests, return result of test not event loop
libuEv v2.1.1
Fixes
- Fix use after free in main event loop if watcher deletes itself in the callback. I.e., the callback must be the last action for the watcher in the event loop
- Doc timer example fix by @tisyang
- Doc timer updates, non-zero timeout required
libuEv v2.1.0
Changes
- Remove event loop error tracking used to trigger a
epoll_create1()
at a certain error threshold. This tracking was first introduced in [v1.1.0][], triggered by spuriousEPOLLERR
on I/O watchers - Unconditionally stop I/O watchers that return
EPOLLERR
orEPOLLHUP
, it is up to the watcher callback to clear the error and/orread()
the last few bytes from the descriptor. HUP usally means EOF, or that the remote end of a stream or pipe closed, this may also be signaled byread()
returning zero - Add missing
--enable-examples
toconfigure
script - Update documentation, both README.md and API.md
Fixes
- Properly stop and de-register signal and cron/timer watchers from the epoll socket in case of errors, problem introduced in v2.0.0
- Mark watcher file descriptor as unintialized on internal error
- Fix double-close of cron/timer watchers. Problem triggered when the timer expires and calls
uev_exit()
, which stops all watchers. When the timer callback returns another call to stop the watcher triggered the doubleclose()
- Fix unit test's error handling in watcher callbacks, for reference
- Fix use-before-set in cronrun unit test
- Make sure to restart unit test's I/O watchers on
UEV_ERROR
- Make sure to restart example I/O watchers on
UEV_ERROR
- Properly check for
UEV_HUP
in unit tests and examples