
29 Nov
2018
29 Nov
'18
4:45 p.m.
forever $ do yield atomically $ writeTVar x True
..it always prints -- so the culprit is definitely a failure to yield.
A-ha. So my implicit assumption was that a run of the transaction manager (because "atomically") is also a yield - but this example shows that it isn't. If this is indeed the case, then this deserves to be mentioned in the documentation of Control.Concurrent.STM ? - J.W.