[1.0.0.1] - May 16, 2024
- Fix
term-variable-capture warnings
- Require at least GHC 9.2
[1.0.0] - October 10, 2023
- Add
count, which returns the number of timers in a timer wheel
- Add
Seconds type alias for readability
- Add
Timer newtype for readability
- Make
create / with no longer throw an exception if given an invalid config; rather, the config's invalid values are
replaced with sensible defaults
- Make
recurring / recurring_ handle delays that are shorter than the wheel resolution more correctly
- Make
recurring / recurring_ no longer throw an exception if given a negative delay
- Make calling
cancel more than once on a recurring timer not enter an infinite loop
- Make timers that expire in the same batch no longer fire in an arbitrary order
- Improve the resolution of timers from microseconds to nanoseconds
- Simplify and optimize internals
[0.4.0.1] - November 5, 2022
- Fix inaccurate haddock on
recurring
[0.4.0] - November 5, 2022
- Add
create
- Rename
Data.TimerWheel to TimerWheel
- Swap out
vector for array
- Treat negative delays as 0
- Drop support for GHC < 8.6
[0.3.0] - June 18, 2020
- Add
with
- Add support for GHC 8.8, GHC 8.10
- Change type of
spokes from Natural to Int
- Change order of delay and action arguments in
register, register_, recurring, and recurring_
- Simplify
cancel to return True at most once
- Throw an error if a negative delay is provided to
register, register_, recurring, or recurring_
- Fix underflow bug that affected recurring timers
- Remove
create, destroy
- Remove
TimerWheelDied exception. with now simply re-throws the exception that the timer wheel thread throws
- Remove
InvalidTimerWheelConfig exception. error is used instead
- Remove support for GHC < 8.6
[0.2.0.1] - May 19, 2019
- Swap out
ghc-prim and primitive for vector
[0.2.0] - February 3, 2019
- Add
destroy function, for reaping the background thread
- Add
recurring_ function
- If the timer wheel reaper thread crashes, it will propagate the exception to
the thread that spawned it
new may now throw InvalidTimerWheelConfig
- The cancel action returned by
register is now memoized, which fixes a bug
involving trying to cancel a recurring timer twice. The second call used to
spin forever and peg a CPU
- Use
Config type for creating a timer wheel
- Change argument order around
- Rename
new to create
- Make recurring timers more accurate
[0.1.0] - July 18, 2018