I took a look at the implementation of the MVar function swap and I am just woundering where the atomicy comes from.
-- |Swap the contents of an 'MVar' for a new value. swapMVar :: MVar a -> a -> IO a swapMVar mvar new = block $ do old <- takeMVar mvar putMVar mvar new return old
Is it really just the Exception block, that makes it not interruptable?
Thanks! Georg _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe