Safe Haskell | None |
---|---|
Language | Haskell98 |
A futures implementation that integrates with shelly
jobs 5 (\job -> background job (sleep 2) >> background job (sleep 1))
jobs
will wait for all concurrent jobs to finish.
The argument to jobs is the maximum number of concurrent tasks.
Generally shell scripts contain a lot of quick commands, but when you have the occasional command that is noticeably long and independent of other commands, you can easily run it concurrently.
- jobs :: Int -> (BgJobManager -> Sh a) -> Sh a
- background :: BgJobManager -> Sh a -> Sh (Async a)
- killAllJobs :: MonadIO m => BgJobManager -> m ()
Running external commands asynchronously.
jobs :: Int -> (BgJobManager -> Sh a) -> Sh a Source
Create a BgJobManager
that has a limit
on the max number of background tasks.
an invocation of jobs is independent of any others, and not tied to the Sh monad in any way.
This blocks the execution of the program until all background
jobs are finished.
background :: BgJobManager -> Sh a -> Sh (Async a) Source
killAllJobs :: MonadIO m => BgJobManager -> m () Source