Skip to content

Releases: troglobit/pev

pev v2.0

20 Oct 17:27
Compare
Choose a tag to compare

News: breaking ABI change, timer callbacks are now passed the timer
id as the first argument instead of the timeout value.

Changes

  • Timer callbacks are now passed the timer id as their first argument,
    instead of the timeout value. This to allow callbacks an easy way
    to call pev_timer_set()
  • Add optional destructor callback for private socket, signal, and
    timer data, by Jacques de Laval, Westermo

Fixes

  • The first argument to select() can now handle users calling
    pev_sock_del(). May fix issues seen in this use-case

pev v1.8

23 Aug 05:50
Compare
Choose a tag to compare

Fixes

  • Fix spurious timer triggers on Aarch6 (Arm64), or any arch where a
    char is default unsigned. Found and fixed by Tobias Waldekranz

pev v1.7

05 Mar 10:42
Compare
Choose a tag to compare

Fixes

  • Fix problem with timers expiring with old timeout when having called
    pev_timer_set() to reset them
  • Update timer API description, timeout and period are in microseconds

pev v1.6

09 Jan 18:14
Compare
Choose a tag to compare

Changes

  • Add support for resetting one-shot timers
  • Simplify signal handling, no implicit masking

pev v1.5

06 Jan 16:12
Compare
Choose a tag to compare

Support for one-shot timers, causes incompatible API change.

Changes

  • Add support for one-shot timers. Such callbacks will get the
    timeout value as their first argument. For periodic tasks this
    means, apart from the API change, that the first callback will
    get the timeout value, not the period time, unless the timeout
    value is zero, or the values are equal

Fixes

  • Check return value from fcntl(), which is responsible for
    ensuring all file descriptors are in non-blocking state. As well
    as the O_CLOEXEC flag to prevent forked children from modifying
    the descriptors of the parent process. On failure, pev_sock_add()
    now returns error, which must be dealt with
  • Safely iterate over all events, callbacks may add or remove events
  • Fix install target, looked for missing file LICENSE

pev v1.4

09 Jan 22:14
Compare
Choose a tag to compare

Bug fix release, focusing on timers.

  • Fix timer nsec overflow correction
  • Verify result of timer_start() to prevent disabling event loop timer altogether
  • Don't update timers from timer callback context
  • Check for new timers at runtime

pev v1.3

06 Dec 11:03
Compare
Choose a tag to compare

Bug fix release, including incompatible API change

  • Timer resolution has changed from seconds to microseconds, affects period argument in pev_timer_add()
  • Linked list fix, regression introduced in v1.2, removing an event at runtime caused loss more events: A B C D E, removing B caused loss of A as well, only: C D E remain
  • Sanity check API input arguments, returns EINVAL if arguments are not OK, e.g. NULL callbacks, invalid signal numbers, or bad sockets
  • Memory safety fixes: uninitialized timers, checking for socket activity on non-sockets, etc.
  • Free memory properly on pev_exit()

pev v1.2

02 Dec 12:27
Compare
Choose a tag to compare
  • Dropped local queue.h and BSD queue API entirely for basic doubly-linked list implementation
  • Placed in the public domain, fully free to use without any restrictions.

pev v1.1

21 Nov 19:39
Compare
Choose a tag to compare

Minor fixes

  • Fix leaking for local variable running
  • Fix build on macOS, does not have SOCK_CLOEXEC
  • Handle EINTR when reading (signal/timer) from event pipe
  • Use BSD semantics for signals, restart syscalls automatically
  • Support Illumos/OpenSolaris, simplify default Makefile
    • You now may need to set CC and prefix environment variables to build and install, respectively
  • Support *BSD
    • Verified on OpenBSD, FreeBSD, and NetBSD

pev v1.0

21 Nov 17:21
Compare
Choose a tag to compare

Initial release.

Support for periodic timers, signals, and sockets/descriptors.