Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- newtype TMapChan k a = TMapChan {
- runTMapChan :: TVar (HashMap k (TChan a))
- newTMapChan :: STM (TMapChan k a)
- insert :: (Eq k, Hashable k) => TMapChan k a -> k -> a -> STM ()
- insertMany :: (Eq k, Hashable k) => TMapChan k a -> k -> [a] -> STM ()
- insertFirst :: (Eq k, Hashable k) => TMapChan k a -> k -> a -> STM ()
- lookup :: (Eq k, Hashable k) => TMapChan k a -> k -> STM a
- tryLookup :: (Eq k, Hashable k) => TMapChan k a -> k -> STM (Maybe a)
- lookupAll :: (Eq k, Hashable k) => TMapChan k a -> k -> STM [a]
- observe :: (Eq k, Hashable k) => TMapChan k a -> k -> STM a
- tryObserve :: (Eq k, Hashable k) => TMapChan k a -> k -> STM (Maybe a)
- observeAll :: (Eq k, Hashable k) => TMapChan k a -> k -> STM [a]
- delete :: (Eq k, Hashable k) => TMapChan k a -> k -> STM ()
- deleteAll :: (Eq k, Hashable k) => TMapChan k a -> k -> STM ()
- getTChan :: (Eq k, Hashable k) => TMapChan k a -> k -> STM (TChan a)
- setTChan :: (Eq k, Hashable k) => TMapChan k a -> k -> TChan a -> STM ()
- broadcast :: (Eq k, Hashable k) => TMapChan k a -> a -> STM ()
- cloneAt :: (Eq k, Hashable k) => TMapChan k a -> k -> k -> STM ()
- cloneAll :: (Eq k, Hashable k) => TMapChan k a -> k -> STM ()
- cloneAllUniquely :: (Eq k, Hashable k, Eq a, Hashable a) => TMapChan k a -> k -> STM ()
Documentation
TMapChan | |
|
newTMapChan :: STM (TMapChan k a) Source
insertMany :: (Eq k, Hashable k) => TMapChan k a -> k -> [a] -> STM () Source
insertFirst :: (Eq k, Hashable k) => TMapChan k a -> k -> a -> STM () Source
Inserts the element to the head of the stack, to be viewed next
lookup :: (Eq k, Hashable k) => TMapChan k a -> k -> STM a Source
Blocks until there's a value available to remove from the mutlimap
observe :: (Eq k, Hashable k) => TMapChan k a -> k -> STM a Source
Blocks until there's a vale available to view, without removing it
observeAll :: (Eq k, Hashable k) => TMapChan k a -> k -> STM [a] Source
delete :: (Eq k, Hashable k) => TMapChan k a -> k -> STM () Source
Deletes the next element in the map, if it exists. Doesn't block.
Utils
getTChan :: (Eq k, Hashable k) => TMapChan k a -> k -> STM (TChan a) Source
Creates a new one if it doesn't already exist