Imperative containers are well-explored by C++'s std, and declarative containers by Okasaki's "Purely Functional Data Structures". But there's very little on transactional containers, and they prove to be a rich and nuanced topic given the goal of minimizing false dependencies.
-
-
For example: If a transaction wants to write to element 3 of an array, it had better be memory-safe, but also not impose a strict read-dependency on the array length, since a parallel transaction might be appending a new element to the array.
-
So, using C++ std::vector on top of low-level STM would introduce false dependencies, and a Haskell TVar[t] even more so.
- 1 more reply
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.