timer-wheel: A timer wheel

[ bsd3, data, library ] [ Propose Tags ]

This library provides a timer wheel data structure for

  • O(1) registering IO actions to fire after a given amount of time

  • O(1) canceling registered actions

It is similar to TimerManager from 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. However, until 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.

Modules

[Index]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0, 0.2.0, 0.2.0.1, 0.3.0, 0.4.0, 0.4.0.1, 1.0.0
Change log CHANGELOG.md
Dependencies atomic-primops (>=0.8 && <0.9), base (>=4.9 && <4.13), clock (>=0.7 && <0.8), ghc-prim (>=0.5 && <0.6), primitive (>=0.6 && <0.7), psqueues (>=0.2.7 && <0.3) [details]
License BSD-3-Clause
Copyright (c) 2018, Mitchell Rosen
Author Mitchell Rosen
Maintainer Mitchell Rosen <mitchellwrosen@gmail.com>
Revised Revision 1 made by mitchellwrosen at 2018-09-30T18:49:21Z
Category Data
Home page https://github.com/mitchellwrosen/timer-wheel
Bug tracker https://github.com/mitchellwrosen/timer-wheel/issues
Source repo head: git clone git://github.com/mitchellwrosen/timer-wheel.git
Uploaded by mitchellwrosen at 2018-07-18T23:46:58Z
Distributions LTSHaskell:1.0.0, NixOS:1.0.0, Stackage:1.0.0
Downloads 1999 total (28 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-07-18 [all 1 reports]