async-pool alternatives and similar packages
Based on the "System" category.
Alternatively, view async-pool alternatives based on common mentions on social networks and blogs.
-
taffybar
A gtk based status bar for tiling window managers such as XMonad -
nix-deploy
Deploy software or an entire NixOS system configuration to another NixOS system -
ghc-hotswap
Example code for how we swap compiled code within a running Haskell process. -
optparse-generic
Auto-generate a command-line parser for your datatype -
hapistrano
Deploy tool for Haskell applications, like Capistrano for Rails -
directory
Platform-independent library for basic file system operations -
typed-process
Alternative API for processes, featuring more type safety -
system-fileio
Contains the system-filepath and system-fileio packages -
language-puppet
A library to work with Puppet manifests, test them and eventually replace everything ruby. -
openssh-github-keys
Control SSH access to your servers via GitHub teams -
ascii-progress
A simple Haskell progress bar for the console. Heavily borrows from TJ Holowaychuk's Node.JS project -
optparse-declarative
Declarative command-line option parser -
plugins
Dynamic linking and runtime evaluation of Haskell, and C, including dependency chasing and package resolution. -
directory-contents
Recursively build a tree of directory contents, avoiding symlink cycles -
executable-hash
Provides the SHA1 hash of the program executable
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of async-pool or a related project?
README
taskpool is a lightweight framework for managing a resource-constrained, potentially inter-dependent collection of concurrent tasks.
There are three basic elements in taskpool: Tasks, Handles that refer to registered tasks, a Pool to holds the tasks, and a Manager to execute the tasks.
Tasks form a partially ordered set, which ordered establishes serial execution, and lack of ordering allows for concurrent execution.
Results of a task are reported through its Handle, which may be waited on, polled, or canceled. Exceptions during task execution are reported back to the caller in the same way as the Async type. In fact, a Handle simply contains a TMVar that references an Async value.
The basic operations of taskpool are:
createPool :: Int -> IO Pool suspendPool :: Pool -> IO () resumePool :: Pool -> IO () cancelAll :: Pool -> IO ()
submitTask :: Pool -> Task -> IO Handle submitDependentTask :: Pool -> Handle -> Task -> IO Handle cancelTask :: Handle -> IO () waitOnTask :: Handle -> IO a waitOnTaskEither :: Exception e => Handle -> IO (Either e a) pollTask :: Handle -> IO (Maybe a) pollTaskEither :: Exception e => Handle -> IO (Maybe (Either e a))