timer-wheel-0.2.0: timer-wheel.cabal
cabal-version: 2.0
name: timer-wheel
version: 0.2.0
category: Data
description:
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.
synopsis: A timer wheel
author: Mitchell Rosen
maintainer: Mitchell Rosen <mitchellwrosen@gmail.com>
homepage: https://github.com/mitchellwrosen/timer-wheel
bug-reports: https://github.com/mitchellwrosen/timer-wheel/issues
copyright: (c) 2018, Mitchell Rosen
license: BSD3
license-file: LICENSE
build-type: Simple
tested-with:
GHC == 8.0.2
, GHC == 8.2.2
, GHC == 8.4.4
, GHC == 8.6.3
extra-source-files:
.travis.yml
CHANGELOG.md
source-repository head
type: git
location: git://github.com/mitchellwrosen/timer-wheel.git
library
build-depends:
atomic-primops ^>= 0.8,
base ^>= 4.9 || ^>= 4.10 || ^>= 4.11 || ^>= 4.12,
ghc-prim ^>= 0.5,
primitive ^>= 0.6,
psqueues ^>= 0.2.7
if !impl(ghc >= 8.4)
build-depends:
clock ^>= 0.7
default-extensions:
DeriveGeneric
GeneralizedNewtypeDeriving
LambdaCase
NamedFieldPuns
RecursiveDo
ScopedTypeVariables
TupleSections
TypeApplications
ViewPatterns
default-language:
Haskell2010
exposed-modules:
Data.TimerWheel
ghc-options:
-fprint-expanded-synonyms
-fprint-explicit-foralls
-fprint-explicit-kinds
-fprint-unicode-syntax
-Wall
-Wcompat
-Widentities
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wmissing-local-signatures
-Wnoncanonical-monad-instances
-Wnoncanonical-monadfail-instances
-Wredundant-constraints
if impl(ghc >= 8.4)
ghc-options:
-Wpartial-fields
-Wmissing-export-lists
hs-source-dirs:
src
other-modules:
Entries
Supply
Wheel
test-suite tests
build-depends:
base,
random,
timer-wheel
default-language:
Haskell2010
ghc-options:
-threaded
-with-rtsopts=-N2
-Wall
hs-source-dirs:
test
main-is:
Main.hs
type:
exitcode-stdio-1.0