libuev

Lightweight event loop library for Linux epoll() family APIs

MIT License

Stars
230

Bot releases are hidden (Show)

libuev - libuEv v2.3.2

Published by troglobit over 3 years ago

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 - libuEv v2.3.1

Published by troglobit over 4 years ago

Fixes

  • Debian packaging fixes only.
libuev - libuEv v2.3.0

Published by troglobit over 5 years ago

Changes

  • Support for Linux eventfd, uev_event_*() see API.md for details
libuev - libuEv v2.2.0

Published 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.

Changes

  • Replaced BSD 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
  • Enforce -std=gnu11 to unlock typeof() 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 - libuEv v2.1.3

Published by troglobit about 6 years ago

Changes

  • Update joystick example, use first device, /dev/input/js0
  • Minor refactor of uev_exit(), use _SAFE macros to traverse list of watchers instead of while()
  • New API test to verify that uev_exit() terminates properly
  • Make uev_signal_stop() idempotent

Fixes

  • Let uev_timer_stop() call close() on the timerfd directly, do not call uev_timer_set() since that may cause lockups or hangs
libuev - libuEv v2.1.2

Published by troglobit over 6 years ago

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 - libuEv v2.1.1

Published by troglobit over 6 years ago

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 - libuEv v2.1.0

Published by troglobit almost 7 years ago

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 spurious EPOLLERR on I/O watchers
  • Unconditionally stop I/O watchers that return EPOLLERR 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
  • Add missing --enable-examples to configure 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 double close()
  • 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
libuev - libuEv v2.0.0

Published 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.

Changes

  • 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.
  • Watcher callbacks must handle UEV_ERROR conditions. This pertains in particular to signal and timer watchers.
  • Examples and API docs updated with the new failure modes.
libuev - libuEv v1.6.0

Published by troglobit about 7 years ago

Changes

  • Support for edge triggered and oneshot event types
  • Add make package build target to trigger a .deb package build
  • Support 64 bit time_t on 32 bit GLIBC systems

Fixes

  • bench.c: Use signal.h, not non-standard sys/signal.h
libuev - libuEv v1.5.2

Published by troglobit almost 8 years ago

Fixes

  • Fix build regression in v1.5.1
libuev - libuEv v1.5.1

Published by troglobit almost 8 years ago

Changes

  • Add support for checking if a watcher is active.
  • Refactor unit testing framework
libuev - libuEv v1.5.0

Published by troglobit almost 8 years ago

Changes

  • Add support for absolute timers with the uev_cron_*() API.
  • Update build & install instructions in README

Fixes

  • Fix uev_timer_set() so that it returns error in case the underlying
    Linux timerfd API fails.
libuev - libuEv v1.4.2

Published by troglobit over 8 years ago

Changes

Add range checks for period and timeout to uev_timer_init() and uev_timer_set().
If either on is < 0 libuEv now return ERANGE.

libuev - libuEv v1.4.1

Published by troglobit over 8 years ago

Changes

  • Add some pkg-config integration tips for developers using libuEv
    with GNU autotools in their projects.

Fixes

  • Add missing SFD_CLOEXEC and TFD_CLOEXEC to signal and timer file
    descriptors. This prevents these file descriptors from "leaking" into
    sub-processes of the parent thread. The kernel will atomically close
    these descriptors for forked-off children calling the exec*() family
    of syscalls.
  • Minor coding style fixes and simplification of build scripts.
libuev - libuEv v1.4.0

Published 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!

Changes

  • Change namespace for header files: libuev/ to uev/, e.g. using
    pkg-config your C program must now #include <uev/uev.h>
  • Support for EPOLLPRI events for I/O watchers, thanks to Markus Svilans
  • Simplified joystick example
  • Updated README slightly
libuev - libuEv v1.3.1

Published by troglobit over 8 years ago

Fixes

  • Remove symlinks to Markdown files from GIT
  • Distribute and install Markdown files: README.md, etc.
libuev - libuEv v1.3.0

Published by troglobit almost 9 years ago

Changes

  • Change to GNU configure and build system
  • Default optimization is now -O2, not -Os, which can be a bit
    unpredictable with some cross compiler toolchains. -O2 is
    the tried and tested path, and default in autotools
  • Added -Wextra to the previous -W -Wall, drop -Werror
    which is supposed to be used by maintainer(s) only.
libuev - libuEv v1.2.4

Published by troglobit almost 9 years ago

Fixes

  • Do not allow VERSION to be overloaded by build system.
  • Make sure we don't inherit LDFLAGS from environment.
libuev - libuEv v1.2.3

Published by troglobit about 9 years ago

Very minor release.

Changes

  • README.md updates, mostly cleanup and readability improvements
  • make test now runs the test case, on behalf of Travis-CI
  • Renamed CHANGELOG.md to ChangeLog.md
  • Dropped TODO.md from distribution archives, only for devs

Fixes

  • Lots of Markdown syntax fixes in both README and ChangeLog
  • Silence annoying warning from newer GNU ar in Ubuntu 15.10
Package Rankings
Top 6.99% on Proxy.golang.org
Badges
Extracted from project README
License Badge GitHub Status Coverity Status