
10 Dec
2012
10 Dec
'12
10:07 a.m.
On 10 December 2012 15:20, Simon Marlow
I don't think reading or writing in the inner transaction affects the bug,
If you don't read or write in the inner transaction, like in the following example, the program correctly prints 2: import Control.Concurrent.STM main = do x <- atomically $ do t <- newTVar 1 writeTVar t 2 (retry `orElse` return ()) `orElse` return () readTVar t print x