Îõ³h*9&4ÏÌ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊË0.2.2(c) Tim Watson 2012BSD3 (see the file LICENSE)%Tim Watson  experimental#non-portable (requires concurrency) Safe-Inferred7<%êÏdistributed-process-supervisorThe result of a  stopChild request.distributed-process-supervisor"The child was stopped successfullydistributed-process-supervisor2The child key was not recognised by the supervisordistributed-process-supervisorThe result of a  restartChild request.distributed-process-supervisor The child restarted successfullydistributed-process-supervisorThe child failed to restartdistributed-process-supervisor2The child key was not recognised by the supervisordistributed-process-supervisorThe result of a  startChild request.distributed-process-supervisorThe child started successfully distributed-process-supervisorThe child failed to start distributed-process-supervisor2The child key was not recognised by the supervisor distributed-process-supervisorThe result of an addChild request. distributed-process-supervisorThe child was added correctly distributed-process-supervisorThe child failed to startdistributed-process-supervisorA child represented as a (ChildRef, ChildSpec) pair.distributed-process-supervisorThe result of a call to  removeChild.distributed-process-supervisor0the child specification was successfully removeddistributed-process-supervisor%the child specification was not founddistributed-process-supervisor1the child was not removed, as it was not stopped.distributed-process-supervisorÂProvides failure information when (re-)start failure is indicated.distributed-process-supervisora child with this Z already existsdistributed-process-supervisor#the child is already up and runningdistributed-process-supervisora closure cannot be resolveddistributed-process-supervisor-a child died (almost) immediately on startingdistributed-process-supervisor0Static labels (in the remote table) are strings.distributed-process-supervisor5Supervisor event data published to the management APIdistributed-process-supervisorA branch restart took placedistributed-process-supervisorA child is being restarteddistributed-process-supervisorA child has been starteddistributed-process-supervisorA child failed to startdistributed-process-supervisor"A child process death was detecteddistributed-process-supervisorA child failed during init distributed-process-supervisorA child has been stopped!distributed-process-supervisorA supervisor is shutting down.distributed-process-supervisor%Statistics about a running supervisor7distributed-process-supervisorÅA child process failure during init will be reported using this datum8distributed-process-supervisor.The init failed with the corresponding message9distributed-process-supervisor=The child told the supervisor to ignore its startup procedure:distributed-process-supervisorÒSpecification for a child process. The child must be uniquely identified by it's childKeyÏ within the supervisor. The supervisor will start the child itself, therefore childRunù 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.Cdistributed-process-supervisor:Defines the way in which a child process is to be started.Fdistributed-process-supervisor/Represents a registered name, for registration locally using the register primitive, or via a  Closure (ChildPid -> Process ())Ï such that registration can be performed using alternative process registries.Idistributed-process-supervisorÁGoverns how the supervisor will instruct child processes to stop.Ldistributed-process-supervisor;Describes when a stopped child process should be restarted.Mdistributed-process-supervisor*a permanent child will always be restartedNdistributed-process-supervisora temporary child will never be restartedOdistributed-process-supervisor?A transient child will be restarted only if it stops abnormallyPdistributed-process-supervisoras OÅ, but if the child exits normally, the supervisor also exits normallyQdistributed-process-supervisor?Specifies whether the child is another supervisor, or a worker.Tdistributed-process-supervisor*A reference to a (possibly running) child.Udistributed-process-supervisor,a reference to the (currently running) childVdistributed-process-supervisor%also a currently running child, with extra child infoWdistributed-process-supervisora reference to the old" (previous) child (now restarting)Xdistributed-process-supervisor,indicates the child is not currently runningYdistributed-process-supervisor"a non-temporary child exited with 9Zdistributed-process-supervisor#Identifies a child process by name.[distributed-process-supervisorŒStrategy used by a supervisor to handle child restarts, whether due to unexpected child failure or explicit restart requests from a client.ÑSome terminology: We refer to child processes managed by the same supervisor as siblings'. When restarting a child process, the  RestartNoneË policy indicates that sibling processes should be left alone, whilst the ] policy will cause allÁ children to be restarted (in the same order they were started).*The other two restart strategies refer to prior and  subsequent° 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.\distributed-process-supervisor%restart only the failed child process]distributed-process-supervisoralso restart all siblings^distributed-process-supervisor$restart prior siblings (i.e., prior  start order)_distributed-process-supervisor.restart subsequent siblings (i.e., subsequent  start order)bdistributed-process-supervisorôInstructs a supervisor on how to instruct its children to stop running when the supervisor itself is shutting down.edistributed-process-supervisor6Instructs a supervisor on how to restart its children.fdistributed-process-supervisor/stop then start each child sequentially, i.e., foldlM stopThenStart children gdistributed-process-supervisor8stop all children first, then restart them sequentially hdistributed-process-supervisorÀstop all children in the given order, but start them in reverse jdistributed-process-supervisorÀSpecifies the order in which a supervisor should apply restarts.mdistributed-process-supervisor‰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.qdistributed-process-supervisoráThe maximum number of restarts a supervisor will tollerate, created by evaluating "maxRestarts".rdistributed-process-supervisorThe  ProcessId of a supervised child.sdistributed-process-supervisorThe  ProcessId of a supervisor.tdistributed-process-supervisorSmart constructor for  MaxRestartsÐ. The maximum restart count must be a positive integer, otherwise you will see error "MaxR must be >= 0".udistributed-process-supervisorSmart constructor for  RestartLimit.vdistributed-process-supervisorDefault  RestartLimit of MaxR 1 within  Seconds 1.wdistributed-process-supervisorProvides a default [ for  RestartOne*. > restartOne = RestartOne defaultLimitsxdistributed-process-supervisorProvides a default [ for  RestartAllÄ. > restartOne = RestartAll defaultLimits (RestartEach LeftToRight)ydistributed-process-supervisorProvides a default [ for  RestartLeftÅ. > restartOne = RestartLeft defaultLimits (RestartEach LeftToRight)zdistributed-process-supervisorProvides a default [ for  RestartRightÆ. > restartOne = RestartRight defaultLimits (RestartEach LeftToRight){distributed-process-supervisorTrue if ChildRef is running.|distributed-process-supervisorTrue if ChildRef is restartingÿ:;<=>?@ABZQSRIJKCDEFGHLMNOPTUVWXY{|srqÌÍtmnopuvefghijkl[\]^_a`bcdwxyz  ./0123456789 !"#$%&'()*+,-(c) Tim Watson 2017BSD3 (see the file LICENSE)%Tim Watson  experimental#non-portable (requires concurrency) Safe-Inferred7<ÂÄÝ* }distributed-process-supervisorThe  MxAgentId for the node monitoring agent.~distributed-process-supervisorðMonitor 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  - supÏ pair. Each monitor maintains its own typed channel, which will only contain  MxSupervisor entries obtained after the channel was established.distributed-process-supervisorRemoves all monitors for supï, associated with the calling process. It is not possible to delete individual monitors (i.e. typed channels).€distributed-process-supervisor(Starts the supervision monitoring agent.}€~ !"#$%&'()*+,-}€~ !"#$%&'()*+,-(c) Tim Watson 2012 - 2013BSD3 (see the file LICENSE)%Tim Watson  experimental#non-portable (requires concurrency) Safe-Inferred %&7<ÂÄÊÝ3¡distributed-process-supervisor"A type that can be converted to a C.distributed-process-supervisorÒStart a supervisor (process), running the supplied children and restart strategy. start = spawnLocal . rundistributed-process-supervisor>Run the supplied children using the provided restart strategy.‘distributed-process-supervisor-Obtain statistics about a running supervisor.’distributed-process-supervisor.Lookup a possibly supervised child, given its Z.“distributed-process-supervisor*List all know (i.e., configured) children.”distributed-process-supervisorAdd a new child.•distributed-process-supervisor*Start an existing (configured) child. The : must already be present (see ”%), otherwise the operation will fail.–distributed-process-supervisorçAtomically add and start a new child spec. Will fail if a child with the given key is already present.—distributed-process-supervisorÃDelete a supervised child. The child must already be stopped (see ˜).˜distributed-process-supervisorStop a running child.™distributed-process-supervisor!Forcibly restart a running child.šdistributed-process-supervisorËGracefully stop/shutdown a running supervisor. Returns immediately if the address cannot be resolved.›distributed-process-supervisorAs š, 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.œdistributed-process-supervisorThe  RestartLimit for a given RestartStrategydistributed-process-supervisor4How many child specs are defined for this supervisorždistributed-process-supervisor5How many child specs define a worker (non-supervisor)Ÿdistributed-process-supervisor)How many child specs define a supervisor? distributed-process-supervisor!How many running child processes.¡distributed-process-supervisor=How many worker (non-supervisor) child processes are running.¢distributed-process-supervisor/How many supervisor child processes are runningþ:;<=>?@ABZQSRIJKCDEFGHLMNOPTUVWXY{|srŽqtmnopuvefghijkl[\]^_a`bcdwxyz”  •–˜—™š›’“./0123456‘œžŸ ¡¢789þ:;<=>?@ABZQSRIJKCDEFGHLMNOPTUVWXY{|srŽqtmnopuvefghijkl[\]^_a`bcdwxyz”  •–˜—™š›’“./0123456‘œžŸ ¡¢789Î      !"#$%&'()*+,-./01233456789:;;<==>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ;distributed-process-supervisor-0.2.2-D1GgBsf2WJdDlhfVePJ3td&Control.Distributed.Process.Supervisor1Control.Distributed.Process.Supervisor.Managementdistributed-process-supervisor,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$fGenericSupMxChan$fShowSupMxChan$fGenericUnRegister$fGenericRegister 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$fGenericIgnoreChildReq$fGenericStopChildReq$fShowStopChildReq$fEqStopChildReq$fGenericDelayedRestart$fShowDelayedRestart$fEqDelayedRestart$fGenericRestartChildReq$fShowRestartChildReq$fEqRestartChildReq$fGenericStartChildReq$fGenericAddChildReq$fShowAddChildReq$fGenericListReq$fGenericStatsReq$fGenericFindReq$fGenericDeleteChildMaxRmaxNumberOfRestarts