OTP-like supervision trees in Haskell
protolude
in favor of rio
(closes #9)Capataz
Control.Concurrent.Capataz.Util
which provide ProcessSpec
for normal use-casesbuildLogWorkerSpec
and buildLogWorkerOptions
which create a dedicated supervised
thread that logs messages (sits on top of rio
logger utilities)terminateCapataz
and terminateCapataz_
, these functions replace the
re-exported runTeardown
TeardownResult
from the teardown
packagecapataz-simple-example
project to use typed-process
and rio
WorkerName
and SupervisorName
aliasesprettyprinter
pretty-show
to prettify exceptionsPretty
instance for CapatazEvent
Display
instance for CapatazEvent
ProcessThreadId
newtype to better render ThreadId
valuesbuildWorkerOptions1
and workerSpec1
(closes #17)async
dependencyBREAKING CHANGES
Process
type which is composed of both Supervisor
and
Worker
typesdefWorkerSpec
in favor of workerSpec
and workerSpecWithDefaults
to build static workersdefWorkerOptions
in favor of buildWorkerOptions
and
buildWorkerOptionsWithDefaults
to build dynamic workersterminateWorker
in favor of terminateProcess
supervisorSpec
, supervisorSpecWithDefaults
to build static supervision
treesforkSupervisor
, buildSupervisorOptions
and
buildSupervisorOptionsWithDefaults
to build dynamic supervision treesjoinCapatazThread
to avoid providing direct access to async of root
supervision treegetSupervisorProcessId
to access the ProcessId
of a given Supervisor
record (for dynamic termination)getSupervisorAsync
to access the Async ()
record of a supervisor
process threadgetCapatazTeardown
to access the Teardown
record of the capataz systemCapatazEvent
records to new module Control.Concurrent.Capataz.Event
to avoid requiring DuplicateRecordFields
extension on API usersWorkerAction
alias as it is used for library development
documentationforkCapataz
signature now requires name for root supervisortasty
dependencytasty
dependencytasty-hunit
dependencyIO ()
sub-routines