Hi,

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

Reply via email to