Lightweight event loop library for Linux epoll() family APIs
MIT License
Bot releases are visible (Hide)
uev_run()
, found by Steve PalmerPublished by github-actions[bot] about 3 years ago
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.
struct signalfd_siginfo
to uev_t
, valid for signal watchers. Now more metadata is available to signal callbacks-D_FILE_OFFSET_BITS=64
for applications and libraries that want a 64-bit time_t
. Affects library and test programs used for make check
, as well as all other applications that link with libuEv, so the libuev.pc
file is also updatedPackages for Debian 10, or later, and compatible Ubuntu releases, available at https://deb.troglobit.com/
Published by troglobit over 3 years ago
Published by troglobit over 4 years ago
Published by troglobit over 5 years ago
uev_event_*()
see API.md for detailsPublished by troglobit about 6 years ago
NOTE: You now have to explicitly include sys/queue.h
, or provide a local version of queue.h
, if your application depends on it.
queue.h
doubly-linked lst API with own implementation. Making libuEv stand-alone, no longer imposing any particular version of queue.h
on the user-std=gnu11
to unlock typeof()
in older GCC versionsMakefile.am
, library did not rebuild properly if any of the local header files were changedPublished by troglobit about 6 years ago
/dev/input/js0
uev_exit()
, use _SAFE
macros to traverse list of watchers instead of while()
uev_exit()
terminates properlyuev_signal_stop()
idempotentuev_timer_stop()
call close()
on the timerfd directly, do not call uev_timer_set()
since that may cause lockups or hangsPublished by troglobit over 6 years ago
AM_PROG_AR
macro exists before calling it, fixes problem building libuEv on systems with older autoconf + automake. Patch by Markus SvilansPublished by troglobit over 6 years ago
Published by troglobit almost 7 years ago
epoll_create1()
at a certain error threshold. This tracking was first introduced in [v1.1.0][], triggered by spurious EPOLLERR
on I/O watchersEPOLLERR
or EPOLLHUP
, it is up to the watcher callback to clear the error and/or read()
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 by read()
returning zero--enable-examples
to configure
scriptuev_exit()
, which stops all watchers. When the timer callback returns another call to stop the watcher triggered the double close()
UEV_ERROR
UEV_ERROR
UEV_HUP
in unit tests and examplesPublished by troglobit almost 7 years ago
Beware, this is a major release, introducing incompatible changes to the failure modes of uev_run()
and watcher callbacks. Most users will most likely not notice any difference, but please read on.
uev_run()
no longer exits the main event loop if an unrecoverable error with a watcher occurs. Instead, the watcher is disabled and the callback is run one last time with events
set to UEV_ERROR
.UEV_ERROR
conditions. This pertains in particular to signal and timer watchers.Published by troglobit about 7 years ago
make package
build target to trigger a .deb
package buildtime_t
on 32 bit GLIBC systemsbench.c
: Use signal.h
, not non-standard sys/signal.h
Published by troglobit almost 8 years ago
Published by troglobit almost 8 years ago
Published by troglobit almost 8 years ago
uev_cron_*()
API.uev_timer_set()
so that it returns error in case the underlyingPublished by troglobit over 8 years ago
Add range checks for period
and timeout
to uev_timer_init()
and uev_timer_set()
.
If either on is < 0
libuEv now return ERANGE
.
Published by troglobit over 8 years ago
pkg-config
integration tips for developers using libuEvSFD_CLOEXEC
and TFD_CLOEXEC
to signal and timer filePublished by troglobit over 8 years ago
This release changes the header file namespace, which was silently introduced in v1.2.1.
Apologies for any problems this may cause!
libuev/
to uev/
, e.g. usingpkg-config
your C program must now #include <uev/uev.h>
EPOLLPRI
events for I/O watchers, thanks to Markus SvilansREADME
slightlyPublished by troglobit over 8 years ago
Published by troglobit almost 9 years ago
-O2
, not -Os
, which can be a bit-O2
is-Wextra
to the previous -W -Wall
, drop -Werror