packages feed

tmapchan 0.0.0 → 0.0.1

raw patch · 3 files changed

+15/−1 lines, 3 files

Files

src/Control/Concurrent/STM/TMapChan.hs view
@@ -7,6 +7,7 @@   , delete, deleteAll   , -- * Utils     getTChan+  , broadcast   , cloneAt, cloneAll, cloneAllUniquely   ) where @@ -86,6 +87,13 @@   -- * Utils+++-- | Insert for every key+broadcast :: Ord k => TMapChan k a -> a -> STM ()+broadcast t@(TMapChan xs) a = do+  ks <- Map.keys <$> readTVar xs+  forM_ ks (\k -> insert t k a)   -- | Creates a new one if it doesn't already exist
src/Control/Concurrent/STM/TMapChan/Hash.hs view
@@ -91,6 +91,12 @@       pure c'     Just c' -> pure c' +broadcast :: (Eq k, Hashable k) => TMapChan k a -> a -> STM ()+broadcast t@(TMapChan xs) a = do+  ks <- HashMap.keys <$> readTVar xs+  forM_ ks (\k -> insert t k a)++ cloneAt :: (Eq k, Hashable k)         => TMapChan k a         -> k -- ^ key to clone /from/
tmapchan.cabal view
@@ -1,5 +1,5 @@ name:                tmapchan-version:             0.0.0+version:             0.0.1 synopsis:            A time-ordered multimap which consumes values as you lookup -- description: homepage:            https://github.com/athanclark/tmapchan#readme