12 Nov
2011
12 Nov
'11
12:37 a.m.
We're hitting something that looks similar with a Chan on 7.2.1, though they might be related.. On Fri, Nov 11, 2011 at 4:52 AM, Simon Marlow <marlowsd@gmail.com> wrote:
Sorry, no. That one has a workaround: define your own fixIO:
fixIO :: (a -> IO a) -> IO a fixIO k = do m <- newEmptyMVar ans <- unsafeInterleaveIO (takeMVar m) result <- k ans putMVar m result return result