úΟ_‘Ì      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊË(c) Tim Watson 2012BSD3 (see the file LICENSE)%Tim Watson <watson.timothy@gmail.com> experimental#non-portable (requires concurrency)None16cÁOThe result of a  stopChild request."The child was stopped successfully2The child key was not recognised by the supervisorThe result of a  restartChild request. The child restarted successfullyThe child failed to restart2The child key was not recognised by the supervisorThe result of a  startChild request.The child started successfully The child failed to start 2The child key was not recognised by the supervisor The result of an addChild request. The child was added correctly The child failed to startA child represented as a (ChildRef, ChildSpec) pair.The result of a call to  removeChild.0the child specification was successfully removed%the child specification was not found1the child was not removed, as it was not stopped.BProvides failure information when (re-)start failure is indicated.a child with this Z already exists#the child is already up and runninga closure cannot be resolved-a child died (almost) immediately on starting0Static labels (in the remote table) are strings.5Supervisor event data published to the management APIA branch restart took placeA child is being restartedA child has been startedA child failed to start"A child process death was detectedA child failed during init A child has been stopped!A supervisor is shutting down.%Statistics about a running supervisor7EA child process failure during init will be reported using this datum8.The init failed with the corresponding message9=The child told the supervisor to ignore its startup procedure:RSpecification for a child process. The child must be uniquely identified by it's childKeyO within the supervisor. The supervisor will start the child itself, therefore childRuny should contain the child process' implementation e.g., if the child is a long running server, this would be the server loop, as with e.g., ManagedProces.start.C:Defines the way in which a child process is to be started.F/Represents a registered name, for registration locally using the register primitive, or via a  Closure (ChildPid -> Process ())O such that registration can be performed using alternative process registries.IAGoverns how the supervisor will instruct child processes to stop.L;Describes when a stopped child process should be restarted.M*a permanent child will always be restartedNa temporary child will never be restartedO?A transient child will be restarted only if it stops abnormallyPas OE, but if the child exits normally, the supervisor also exits normallyQ?Specifies whether the child is another supervisor, or a worker.T*A reference to a (possibly running) child.U,a reference to the (currently running) childV%also a currently running child, with extra child infoWa reference to the old" (previous) child (now restarting)X,indicates the child is not currently runningY"a non-temporary child exited with 9Z#Identifies a child process by name.[ŒStrategy used by a supervisor to handle child restarts, whether due to unexpected child failure or explicit restart requests from a client.QSome terminology: We refer to child processes managed by the same supervisor as siblings'. When restarting a child process, the  RestartNoneK policy indicates that sibling processes should be left alone, whilst the ] policy will cause allA children to be restarted (in the same order they were started).*The other two restart strategies refer to prior and  subsequentÿ0 siblings, which describe's those children's configured position in insertion order in the child specs. These latter modes allow one to control the order in which siblings are restarted, and to exclude some siblings from restarting, without having to resort to grouping them using a child supervisor.\%restart only the failed child process]also restart all siblings^$restart prior siblings (i.e., prior  start order)_.restart subsequent siblings (i.e., subsequent  start order)btInstructs a supervisor on how to instruct its children to stop running when the supervisor itself is shutting down.e6Instructs a supervisor on how to restart its children.f/stop then start each child sequentially, i.e., foldlM stopThenStart children g8stop all children first, then restart them sequentially h@stop all children in the given order, but start them in reverse j@Specifies the order in which a supervisor should apply restarts.m‰A compulsary limit on the number of restarts that a supervisor will tolerate before it stops all child processes and then itself. If >  MaxRestarts occur within the specified  TimeInterval, the child will be stopped. This prevents the supervisor from entering an infinite loop of child process stops and restarts.qaThe maximum number of restarts a supervisor will tollerate, created by evaluating "maxRestarts".rThe  ProcessId of a supervised child.sThe  ProcessId of a supervisor.tSmart constructor for  MaxRestartsP. The maximum restart count must be a positive integer, otherwise you will see error "MaxR must be >= 0".uSmart constructor for  RestartLimit.vDefault  RestartLimit of MaxR 1 within  Seconds 1.wProvides a default [ for  RestartOne*. > restartOne = RestartOne defaultLimitsxProvides a default [ for  RestartAllD. > restartOne = RestartAll defaultLimits (RestartEach LeftToRight)yProvides a default [ for  RestartLeftE. > restartOne = RestartLeft defaultLimits (RestartEach LeftToRight)zProvides a default [ for  RestartRightF. > restartOne = RestartRight defaultLimits (RestartEach LeftToRight){True if ChildRef is running.|True if ChildRef is restarting  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQSRTUVWXYZ[\]^_a`bcdefghijklmnopqÌÍrstuvwxyz{|  " !"#$%"&#'"(#")#"*'"*+"($",-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY[ \]^_``a`a`abcdefghiiijklmnopqÌÍ(c) Tim Watson 2017BSD3 (see the file LICENSE)%Tim Watson <watson.timothy@gmail.com> experimental#non-portable (requires concurrency)None16;=Vs}}The  MxAgentId for the node monitoring agent.~pMonitor the supervisor for the given pid. Binds a typed channel to the calling process, to which the resulting  ReceivePort belongs.)Multiple monitors can be created for any calling process  - supO pair. Each monitor maintains its own typed channel, which will only contain  MxSupervisor entries obtained after the channel was established.Removes all monitors for supo, associated with the calling process. It is not possible to delete individual monitors (i.e. typed channels).€(Starts the supervision monitoring agent. !"#$%&'()*+,-}~€'}€~ !"#$%"&#'"(#")#"*'"*+"($",-ÎÏÐÑÒÓÔ(c) Tim Watson 2012 - 2013BSD3 (see the file LICENSE)%Tim Watson <watson.timothy@gmail.com> experimental#non-portable (requires concurrency)None "#16;=COVŒÊ"A type that can be converted to a C.RStart a supervisor (process), running the supplied children and restart strategy. start = spawnLocal . run>Run the supplied children using the provided restart strategy.‘-Obtain statistics about a running supervisor.’.Lookup a possibly supervised child, given its Z.“*List all know (i.e., configured) children.”Add a new child.•*Start an existing (configured) child. The : must already be present (see ”%), otherwise the operation will fail.–gAtomically add and start a new child spec. Will fail if a child with the given key is already present.—CDelete a supervised child. The child must already be stopped (see ˜).˜Stop a running child.™!Forcibly restart a running child.šKGracefully stop/shutdown a running supervisor. Returns immediately if the address cannot be resolved.›As š, but waits until the supervisor process has exited, at which point the caller can be sure that all children have also stopped. Returns immediately if the address cannot be resolved.œThe  RestartLimit for a given RestartStrategy4How many child specs are defined for this supervisorž5How many child specs define a worker (non-supervisor)Ÿ)How many child specs define a supervisor? !How many running child processes.¡=How many worker (non-supervisor) child processes are running.¢/How many supervisor child processes are running~ ./0123456789:;<=>?@ABCDEFGHIJKLMNOPQSRTUVWXYZ[\]^_a`bcdefghijklmnopqrstuvwxyz{|Ž‘’“”•–—˜™š›œžŸ ¡¢…:;<=>?@ABZQRSIJKCDEFGHLMNOPTUVWXY{|srŽqtmnopuvefghiiijkl[\]^_``a`a`abcdwxyz”  •–˜—™š›’“./0123456‘œžŸ ¡¢789Õ ÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûŽü      !"#$%&'()*+,-./01223456789::;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÎÏÐÐÑÑÒÒÓÔÕÖרÙÚÛÜÝÞßàááââããääåæçèéêëììííîîïïð;distributed-process-supervisor-0.2.1-AH9ECMQQeTrGdZ84BFdlQ8&Control.Distributed.Process.Supervisor1Control.Distributed.Process.Supervisor.Management,Control.Distributed.Process.Supervisor.TypesStopChildResult StopChildOkStopChildUnknownIdRestartChildResultChildRestartOkChildRestartFailedChildRestartUnknownIdStartChildResult ChildStartOkChildStartFailedChildStartUnknownIdAddChildResult ChildAddedChildFailedToStartChildDeleteChildResult ChildDeleted ChildNotFoundChildNotStopped StartFailureStartFailureDuplicateChildStartFailureAlreadyRunningStartFailureBadClosureStartFailureDied StaticLabel MxSupervisorSupervisorBranchRestartedSupervisedChildRestartingSupervisedChildStartedSupervisedChildStartFailureSupervisedChildDiedSupervisedChildInitFailedSupervisedChildStoppedSupervisorShutdown supervisorPid childSpecKey diedReasonbranchStrategy childInScope exitReasonchildRef startFailurechildPid initFailure shutdownMode exitRasonSupervisorStats _children _supervisors_workers_running_activeSupervisors_activeWorkers totalRestartsChildInitFailureChildInitIgnore ChildSpecchildKey childType childRestartchildRestartDelay childStop childStart childRegName ChildStart RunClosure CreateHandleRegisteredName LocalNameCustomRegisterChildStopPolicy StopTimeoutStopImmediately RestartPolicy Permanent Temporary Transient Intrinsic ChildTypeWorker SupervisorChildRef ChildRunningChildRunningExtraChildRestarting ChildStoppedChildStartIgnoredChildKeyRestartStrategy RestartOne RestartAll RestartLeft RestartRight intensitymode ShutdownModeSequentialShutdownParallelShutdown RestartMode RestartEachRestartInOrderRestartRevOrderorder RestartOrder LeftToRight RightToLeft RestartLimitmaxRmaxT MaxRestartsChildPid SupervisorPid maxRestartslimit defaultLimits restartOne restartAll restartLeft restartRight isRunning isRestartingsupervisionAgentIdmonitorSupervisorunmonitorSupervisorsupervisionMonitor$fNFDataRegister$fBinaryRegister$fNFDataUnRegister$fBinaryUnRegister $fEqSupMxChan$fHashableSupMxChan$fNFDataSupMxChan$fBinarySupMxChan$fGenericRegister$fGenericUnRegister$fGenericSupMxChan$fShowSupMxChan ToChildStart toChildStartstartrun statistics lookupChild listChildrenaddChild startChild startNewChild deleteChild stopChild restartChildshutdownshutdownAndWaitgetRestartIntensitydefinedChildrendefinedWorkersdefinedSupervisorsrunningChildrenrunningWorkersrunningSupervisors$fToChildStartStatic$fToChildStartClosure$fToChildStartClosure0$fNFDataDeleteChild$fBinaryDeleteChild$fNFDataFindReq$fBinaryFindReq$fNFDataStatsReq$fBinaryStatsReq$fNFDataListReq$fBinaryListReq$fNFDataAddChildReq$fBinaryAddChildReq$fNFDataStartChildReq$fBinaryStartChildReq$fNFDataRestartChildReq$fBinaryRestartChildReq$fNFDataDelayedRestart$fBinaryDelayedRestart$fNFDataStopChildReq$fBinaryStopChildReq$fNFDataIgnoreChildReq$fBinaryIgnoreChildReq$fLoggerLogSink$fGenericDeleteChild$fGenericFindReq$fGenericStatsReq$fGenericListReq$fGenericAddChildReq$fShowAddChildReq$fGenericStartChildReq$fGenericRestartChildReq$fShowRestartChildReq$fEqRestartChildReq$fGenericDelayedRestart$fShowDelayedRestart$fEqDelayedRestart$fGenericStopChildReq$fShowStopChildReq$fEqStopChildReq$fGenericIgnoreChildReqMaxRmaxNumberOfRestarts SupMxChansmxc UnRegisterRegisterState_specs_active _strategy_restartPeriod _restarts_stats_loggershutdownStrategyLogSink LogProcessLogChan StatsTypeActive SpecifiedIgnoreChildReq StopChildReqDelayedRestartRestartChildReq StartChildReq StartChild AddChildResExistsAdded AddChildReqAddChildListReqStatsReqFindReq DeleteChild