auto-update-0.2.0: Efficiently run periodic, on-demand actions
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Reaper.Internal

Synopsis

Documentation

data Reaper workload item Source #

A data structure to hold reaper APIs.

Constructors

Reaper 

Fields

  • reaperAdd :: item -> IO ()

    Adding an item to the workload

  • reaperRead :: IO workload

    Reading workload.

  • reaperModify :: (workload -> workload) -> IO workload

    Modify the workload. The resulting workload is returned.

    If there is no reaper thread, the modifier will not be applied and reaperEmpty will be returned.

    If the reaper is currently executing jobs, those jobs will not be in the given workload and the workload might appear empty.

    If all jobs are removed by the modifier, the reaper thread will not be killed. The reaper thread will only terminate if reaperKill is called or the result of reaperAction satisfies reaperNull.

    Since: 0.2.0

  • reaperStop :: IO workload

    Stopping the reaper thread if exists. The current workload is returned.

  • reaperKill :: IO ()

    Killing the reaper thread immediately if exists.