A data structure to hold reaper APIs.
Constructors
ReaperreaperAdd :: item -> IO ()Adding an item to the workload
reaperRead :: IO workloadReading workload.
reaperModify :: (workload -> workload) -> IO workloadModify the workload. The resulting workload is returned.
If there is no reaper thread, the modifier will not be applied and
reaperEmptywill 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
reaperActionsatisfiesreaperNull.reaperStop :: IO workloadStopping the reaper thread if exists. The current workload is returned.
reaperKill :: IO ()Killing the reaper thread immediately if exists.