Filter Modules


type MonadAsync m = (MonadIO m, MonadBaseControl IO m, MonadThrow m) Source #

A monad that can perform concurrent or parallel IO operations. Streams that can be composed concurrently require the underlying monad to be MonadAsync.

Since: 0.1.0 (Streamly)

Since: 0.8.0

newtype RunInIO m Source #




doFork :: MonadBaseControl IO m => m () -> RunInIO m -> (SomeException -> IO ()) -> m ThreadId Source #

Fork a thread to run the given computation, installing the provided exception handler. Lifted to any monad with 'MonadBaseControl IO m' capability.

TODO: the RunInIO argument can be removed, we can directly pass the action as "mrun action" instead.

fork :: MonadBaseControl IO m => m () -> m ThreadId Source #

fork lifted to any monad with 'MonadBaseControl IO m' capability.

forkManaged :: (MonadIO m, MonadBaseControl IO m) => m () -> m ThreadId Source #

Fork a thread that is automatically killed as soon as the reference to the returned threadId is garbage collected.