tbox: Transactional variables and data structures with IO hooks
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
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
that serializes its content to a file via
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.
TFile skip list instance tries to reconstruct its content from the
TFile-directory. See module Control.Concurrent.TFile.TSkipList for a
Feedback is highly appreciated!
|Versions [faq]||0.0.0, 0.1.0|
|Dependencies||array (>=0.2 && <0.4), base (==4.*), binary (==0.5.*), cautious-file (>=0.1.5 && <0.2), containers (>=0.2.0.1 && <0.4), directory (>=126.96.36.199 && <1.1), filepath (==1.1.*), IfElse (>=0.85 && <1), monad-loops (>=0.3.0.2 && <0.4.0.0), mtl (>=188.8.131.52 && <1.2), random (>=184.108.40.206 && <1.1), safe-failure (>=0.4.0 && <0.5), stm-io-hooks (>=0.6.0 && <0.7) [details]|
|Author||Peter Robinson 2009, 2010|
|Maintainer||Peter Robinson <email@example.com>|
|Uploaded||by PeterRobinson at Fri Apr 2 19:43:24 UTC 2010|
|Downloads||1169 total (24 in the last 30 days)|
|Rating||(no votes yet) [estimated by rule of succession]|
Docs uploaded by user
Build status unknown [no reports yet]
For package maintainers and hackage trustees