stm
stm copied to clipboard
Software Transactional Memory
It would be very handy to have a `MonadFail` instance that `retry`s. As a minimal motivating example, consider: pop :: TVar [a] -> STM a pop v = do a:as
``` $ git clone [email protected]:haskell/stm.git Cloning into 'stm'... ... warning: the following paths have collided (e.g. case-sensitive paths on a case-insensitive filesystem) and only one from the same colliding group...
GHC PR: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/11737 CLC issue: https://github.com/haskell/core-libraries-committee/issues/231
It acts weirdly. Causes random halts and etc. One issue that is easily reproducible is that the following test fails: ```haskell describe "TBQueue" do describe "flushTBQueue" do it "Affects the...
In https://github.com/haskell/stm/pull/17 / https://github.com/haskell/stm/commit/22219489b37b48a981b6f833aaee1226bff86405, the type for the capacity of `TBQueue`s was changed from `Int` to `Natural`, to avoid negative capacities. With https://github.com/haskell/stm/pull/70, the capacity is now internally stored as...
`Control.Concurrent.STM.TSem` provides `signalTSemN` to release multiple units, but no `waitTSemN` to acquire multiple units. It would try to acquire all units at once (like [`waitQSemN`](https://hackage.haskell.org/package/base/docs/Control-Concurrent-QSemN.html#v:waitQSemN)).
As a user of `TQueue` and `TBQueue` I don't really mind that the queue is amortized and not real-time. However I do want the power to reverse the write end...
Now that the CLC proposal has been approved, this can be merged. https://github.com/haskell/core-libraries-committee/issues/261. See https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12242. Obviates https://github.com/haskell/stm/pull/81.