@hackage rolling-queue0.1
Bounded channel for STM that discards old entries when full
Categories
License
BSD-3-Clause
Maintainer
joeyadams3.14159@gmail.com
Links
Versions
- 0.1 Thu, 16 Feb 2012
Installation
Dependencies (2)
Dependents (2)
@hackage/acme-everything, @hackage/imap
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.