This library provides a timer wheel data structure for
IOactions to fire after a given amount of time
O(1) canceling registered actions
It is similar to
GHC.Event, but can scale much better
under concurrent access patterns.
An unreleased version of this library has a
backpack-based signature for
selecting from a variety of different data structures used internally.
backpack has broader support on Hackage, and in Haddocks,
etc, I decided to just hard-code something decent (a priority search queue).
This makes the
O(1) claims above a bit of a lie, as these rely on using a
linked list data structure internally.
All notable changes to this project will be documented in this file.
destroyfunction, for reaping the background thread
- If the timer wheel reaper thread crashes, it will propagate the exception to the thread that spawned it
newmay now throw
- The cancel action returned by
registeris now memoized, which fixes a bug involving trying to cancel a
recurringtimer twice. The second call used to spin forever and peg a CPU
Configtype for creating a timer wheel
- Change argument order around
- Make recurring timers more accurate
[0.1.0] - 2018-07-18
- Initial release