stm-containers
stmx
stm-containers | stmx | |
---|---|---|
2 | 3 | |
62 | 238 | |
- | - | |
3.7 | 3.7 | |
14 days ago | 3 months ago | |
Haskell | Common Lisp | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
stm-containers
-
Software Transactional Memory (1997)
I think you are right about STM being roughly equivalent to snapshot isolation.
What STM offers is an easy way to invent "containers for snapshotted values" aka TVars. Using them carefully may result in better scaling: https://hackage.haskell.org/package/stm-containers
-
How to achieve "Run at most one parallel async action per user"?
how about use stm-containers?
stmx
-
Software Transactional Memory (1997)
Common Lisp has it too, via https://stmx.org/ I believe it supports the Intel TSX stuff if present and falls back to a software implementation if not present.
-
Is there any double compare-and-swap (DCAS) library for CL?
https://github.com/cosmos72/stmx is transactional memory, so I think it does a bit more than simple CAS. CAS is in https://shinmera.github.io/atomics .
- High Performance Transactional Memory for Common Lisp
What are some alternatives?
stm-incremental - A very simple interface for incremental computation using STM in Haskell.
stm-haskell - Concurrent algorithms in Haskell using software transactional memory (STM monad)
restricted-workers - Interactive-diagrams
Lisp-Actors - Thread-agnostic Actors in Common Lisp
stm-chunked-queues - Thread communication queues that group items/requests that occur close together in time
cl-skip-list - Lockless skip lists for Common Lisp; well, for now sbcl 1.0.42 or higher. Contributions for other Lisps welcome. See the README file for a list of what is required.
theatre - Minimalistic actor library for Haskell
js-db - Key-Value DB for TypeScript and JavaScript Applications
named-lock - A named lock that is created on demand.
conceit - Concurrently + Either
ttrie - A contention-free STM hash map for Haskell
stm-hamt - STM-specialised Hash Array Mapped Trie