@hackage stm-io-hooks1.1.2
Launch your IO-actions from within the STM monad
Categories
License
BSD-3-Clause
Maintainer
thaldyron@gmail.com
Links
- Documentation
- No source repository
- Security
Versions
Installation
Dependencies (4)
Dependents (3)
@hackage/persistent-map, @hackage/acme-everything, @hackage/tbox
This library provides a Software Transactional Memory (STM) monad with commit and retry IO hooks. A retry-action is run (at least once) if the transaction retries, while comm it-actions are executed iff the transaction commits. The AdvSTM monad also gives some atomicity guarantees for commit-actions:
-
When a TVar is modified in a transaction and this transaction commits, the update remains invisible to other threads until the corresponding onCommit action is run.
-
If the onCommit action throws an exception, the original values of the modified TVars are restored.
Note: The package can be used as a drop-in replacement for 'Control.Concurrent.STM'.