This packages provides throttling functionality for arbitrary IO producers and consumers. The core function exported is the following:
throttle :: ThrottleConf a -- ^ Throttling configuration
-> IO (Maybe a) -- ^ Input callback
-> (Maybe a -> IO ()) -- ^ Output callback
-> IO (Async ()) -- ^ Returns an async handler for this
-- throttling process
This will spawn asynchronous operations that
-
consume data using the provided input callback and write it into an internal buffering queue and
-
produce data from the buffering queue using the provided consumer callback.