packages feed

rolling-queue-0.1: rolling-queue.cabal

name:                rolling-queue
version:             0.1
synopsis:            Bounded channel for STM that discards old entries when full
description:
    This package provides a FIFO channel for STM supporting a size limit.  When
    this limit is reached, older entries are discarded to make way for newer
    entries.
    .
    The motivation for this is logging.  If log entries are written to a plain
    @TChan@, the program will use a lot of memory if it produces log entries
    faster than they can be processed.  If log entries are written to a bounded
    channel where writes block (e.g. the @stm-chans@ package), the program may
    deadlock if the log channel fills up.  With 'Data.STM.RollingQueue', old
    entries will be discarded instead.
    .
    Possible improvements (not available in 'Data.STM.RollingQueue') include:
    .
        * Discard lower-priority entries first.
    .
        * Discard every other entry, so some of the older entries will still be
          available.
homepage:            https://github.com/joeyadams/haskell-rolling-queue
license:             BSD3
license-file:        LICENSE
author:              Joey Adams
maintainer:          joeyadams3.14159@gmail.com
copyright:           Copyright (c) Joseph Adams 2012
category:            Data
build-type:          Simple
cabal-version:       >=1.8

extra-source-files:
    testing/trivial.hs
    testing/trivial.expected

source-repository head
    type:       git
    location:   git://github.com/joeyadams/haskell-rolling-queue.git

library
    exposed-modules:
        Data.STM.RollingQueue

    build-depends: base == 4.*
                 , stm

    ghc-options: -Wall -O2