threepenny-gui-0.1.0.0: src/Control/Concurrent/Chan/Extra.hs
-- | Extra utilities for chans.
module Control.Concurrent.Chan.Extra
(readAvailableChan)
where
import Control.Concurrent.Chan
readAvailableChan :: Chan a -> IO [a]
readAvailableChan chan = do
v <- readChan chan
vs <- rest
return (v:vs)
where
rest = do
empty <- isEmptyChan chan
if empty
then return []
else do v <- readChan chan
vs <- rest
return (v:vs)