[Haskell-cafe] semantics of concurrent program depends on -O level, -f[no-]omit-yields

Johannes Waldmann johannes.waldmann at htwk-leipzig.de
Thu Nov 29 21:45:09 UTC 2018


>     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.


More information about the Haskell-Cafe mailing list