Network.Hermes.MChan
Description
An MChan is a combination of a Map and a TChan.
- data MChan k v
 - newMChan :: Ord k => STM (MChan k v)
 - newMChanIO :: Ord k => IO (MChan k v)
 - readMChan :: Ord k => MChan k v -> k -> STM (Maybe v)
 - writeMChan :: Ord k => MChan k v -> k -> v -> STM Bool
 - writeMChan' :: Ord k => MChan k v -> k -> v -> STM ()
 - existsMChan :: Ord k => MChan k v -> k -> STM Bool
 - ensureMChan :: Ord k => MChan k v -> k -> STM ()
 - deleteMChan :: Ord k => MChan k v -> k -> STM ()
 
Documentation
MChan is an abstract type representing a keyed, unbounded FIFO channel
newMChanIO :: Ord k => IO (MChan k v)Source
IO version of newMChan. This is useful for creating top-level
 MChans using System.IO.Unsafe.unsafePerformIO, because using
 atomically inside System.IO.Unsafe.unsafePerformIO isn't safe.
readMChan :: Ord k => MChan k v -> k -> STM (Maybe v)Source
Read the next value from an MChan. If the specified key doesn't exist (or is removed while waiting), it returns Nothing.
writeMChan :: Ord k => MChan k v -> k -> v -> STM BoolSource
Write a value to an MChan. Returns false and discards the value if the specified key doesn't exist.