The tbox package

[Tags: lgpl, library]

This package provides STM data structures with IO hooks. The basic building blocks are instances of class TBox. Such an instance is an STM variable that might contain a value of some type a. In contrast to a plain 'TVar (Maybe a)', a TBox has IO hooks that are executed transparently on writes and reads. The IO hooks of the AdvSTM monad extend the atomicity of STM transactions to the on-commit IO actions, which makes it particularly suitable for implementing a persistent and thread-safe storage.

See module Control.Concurrent.TFile for a (simple) instance of a TBox that serializes its content to a file via Data.Binary.

New in this release is the implementation of a skip list in module Control.Concurrent.TBox.TSkipList. A skip list is a probabilistic data structure that provides expected run time of O(log n) for dictionary operations (insert, lookup, filter, delete, update) similar to a balanced tree. The main advantage of a skip list is that it does not need rebalancing, which could cause lots of contention among transactions. The TFile skip list instance tries to reconstruct its content from the TFile-directory. See module Control.Concurrent.TFile.TSkipList for a usage example.

Feedback is highly appreciated!


Properties

Versions0.0.0, 0.1.0
Dependenciesarray (>=0.2 && <0.4), base (==4.*), binary (==0.5.*), cautious-file (>=0.1.5 && <0.2), containers (>=0.2.0.1 && <0.4), directory (>=1.0.0.3 && <1.1), filepath (==1.1.*), IfElse (>=0.85 && <1), monad-loops (>=0.3.0.2 && <0.4.0.0), mtl (>=1.1.0.2 && <1.2), random (>=1.0.0.1 && <1.1), safe-failure (>=0.4.0 && <0.5), stm-io-hooks (>=0.6.0 && <0.7)
LicenseLGPL
AuthorPeter Robinson 2009, 2010
MaintainerPeter Robinson <thaldyron@gmail.com>
Stabilityexperimental
CategoryData, Concurrency
Home pagehttp://darcs.monoid.at/tbox
UploadedFri Apr 2 19:43:24 UTC 2010 by PeterRobinson
Downloads209 total (15 in last 30 days)
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees