Copyright | (c) 2017 Composewell Technologies |
---|---|
License | BSD-3-Clause |
Maintainer | streamly@composewell.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- data Channel m a = Channel {
- svarMrun :: RunInIO m
- outputQueue :: IORef ([ChildEvent a], Int)
- outputDoorBell :: MVar ()
- readOutputQ :: m [ChildEvent a]
- postProcess :: m Bool
- maxWorkerLimit :: Limit
- maxBufferLimit :: Limit
- remainingWork :: Maybe (IORef Count)
- yieldRateInfo :: Maybe YieldRateInfo
- enqueue :: Bool -> (RunInIO m, StreamK m a) -> IO ()
- eagerDispatch :: m ()
- isWorkDone :: IO Bool
- isQueueDone :: IO Bool
- doorBellOnWorkQ :: IORef Bool
- workLoop :: Maybe WorkerInfo -> m ()
- workerThreads :: IORef (Set ThreadId)
- workerCount :: IORef Int
- accountThread :: ThreadId -> m ()
- workerStopMVar :: MVar ()
- svarRef :: Maybe (IORef ())
- svarStats :: SVarStats
- svarInspectMode :: Bool
- svarCreator :: ThreadId
- yield :: Channel m a -> Maybe WorkerInfo -> a -> IO Bool
- stop :: Channel m a -> Maybe WorkerInfo -> IO ()
- stopChannel :: MonadIO m => Channel m a -> m ()
- dumpSVar :: Channel m a -> IO String
Documentation
A mutable channel to evaluate multiple streams concurrently and provide the combined results as output stream.
Channel | |
|
stopChannel :: MonadIO m => Channel m a -> m () Source #
Stop the channel. Kill all running worker threads.