{-# LANGUAGE NoImplicitPrelude #-} {-| Public API for the capataz library Capataz is a library that brings an OTP-like supervisor API to the Haskell concurrency toolset. -} module Control.Concurrent.Capataz ( -- * Types Control.Concurrent.Capataz.Internal.Core.HasSupervisor (..) , Control.Concurrent.Capataz.Internal.Types.CallbackType (..) , Control.Concurrent.Capataz.Internal.Types.WorkerId , Control.Concurrent.Capataz.Internal.Types.WorkerName , Control.Concurrent.Capataz.Internal.Types.WorkerRestartStrategy (..) , Control.Concurrent.Capataz.Internal.Types.WorkerTerminationPolicy (..) , Control.Concurrent.Capataz.Internal.Types.WorkerOptions , Control.Concurrent.Capataz.Internal.Types.ProcessId , Control.Concurrent.Capataz.Internal.Types.ProcessSpec (..) , Control.Concurrent.Capataz.Internal.Types.ProcessType (..) , Control.Concurrent.Capataz.Internal.Types.ProcessTerminationOrder (..) , Control.Concurrent.Capataz.Internal.Types.ProcessError (..) , Control.Concurrent.Capataz.Internal.Types.SupervisorId , Control.Concurrent.Capataz.Internal.Types.SupervisorName , Control.Concurrent.Capataz.Internal.Types.Supervisor , Control.Concurrent.Capataz.Internal.Types.SupervisorRestartStrategy (..) , Control.Concurrent.Capataz.Internal.Types.SupervisorStatus (..) , Control.Concurrent.Capataz.Internal.Types.SupervisorOptions , Control.Concurrent.Capataz.Internal.Types.CapatazOptions , Control.Concurrent.Capataz.Internal.Types.Capataz -- * Default Options for Capataz Processes , Control.Concurrent.Capataz.Internal.Types.buildSupervisorOptions , Control.Concurrent.Capataz.Internal.Types.buildSupervisorOptionsWithDefaults , Control.Concurrent.Capataz.Internal.Types.buildWorkerOptions , Control.Concurrent.Capataz.Internal.Types.buildWorkerOptionsWithDefaults , Control.Concurrent.Capataz.Internal.Types.supervisorSpec , Control.Concurrent.Capataz.Internal.Types.supervisorSpecWithDefaults , Control.Concurrent.Capataz.Internal.Types.workerSpec , Control.Concurrent.Capataz.Internal.Types.workerSpecWithDefaults -- * Lenses to modify Option Records , Control.Concurrent.Capataz.Lens.onSystemEventL , Control.Concurrent.Capataz.Lens.supervisorIntensityL , Control.Concurrent.Capataz.Lens.supervisorPeriodSecondsL , Control.Concurrent.Capataz.Lens.supervisorRestartStrategyL , Control.Concurrent.Capataz.Lens.supervisorProcessSpecListL , Control.Concurrent.Capataz.Lens.supervisorProcessTerminationOrderL , Control.Concurrent.Capataz.Lens.supervisorOnIntensityReachedL , Control.Concurrent.Capataz.Lens.supervisorOnFailureL , Control.Concurrent.Capataz.Lens.workerOnFailureL , Control.Concurrent.Capataz.Lens.workerOnCompletionL , Control.Concurrent.Capataz.Lens.workerOnTerminationL , Control.Concurrent.Capataz.Lens.workerTerminationPolicyL , Control.Concurrent.Capataz.Lens.workerRestartStrategyL -- * Core functionality , Control.Concurrent.Capataz.Internal.Core.forkWorker , Control.Concurrent.Capataz.Internal.Core.forkSupervisor , Control.Concurrent.Capataz.Internal.Core.forkCapataz , Control.Concurrent.Capataz.Internal.Core.terminateCapataz , Control.Concurrent.Capataz.Internal.Core.terminateCapataz_ , Control.Concurrent.Capataz.Internal.Core.terminateProcess -- * Utility functions , Control.Concurrent.Capataz.Internal.Core.joinCapatazThread , Control.Concurrent.Capataz.Internal.Core.getSupervisorProcessId , Control.Concurrent.Capataz.Internal.Core.getSupervisorAsync , Control.Concurrent.Capataz.Internal.Core.getCapatazTeardown -- * Teardown (re-exported) , Control.Teardown.TeardownResult -- * Lens (re-exported) , (&) , Control.Concurrent.Capataz.Lens.set ) where import qualified Control.Concurrent.Capataz.Internal.Core import qualified Control.Concurrent.Capataz.Internal.Types import Control.Concurrent.Capataz.Lens ((&)) import qualified Control.Concurrent.Capataz.Lens import qualified Control.Teardown