h$*     None. #$%&'(-./0256789<=>?rio-process-poolUser supplied callback called _with exceptions masked_ when the   returns  (Sync-) Exceptions thrown from this function are caught, and do not prevent the removal of the resource, also the broker continues.k is the key6 for the resource associated to an incoming messagea specifies the resource type.m% is the monad of the returned action.rio-process-poolUser supplied callback to create and initialize a resource. (Sync-) Exceptions thrown from this function are caught, and the broker continues.k is the key6 for the resource associated to an incoming messagew+ is the type of the demultiplexed messages.a specifies the resource type.m% is the monad of the returned action.rio-process-pool?The action that the broker has to take for in incoming message.k is the key6 for the resource associated to an incoming messagew+ is the type of the demultiplexed messages.rio-process-poolThe message is an initialization message, that requires the creation of a new resouce for the given key. When the resource is created, then maybe3 additionally a message will also be dispatched.rio-process-poolDispatch a message using an existing resource. Silently ignore if no resource for the key exists.rio-process-pool>This value indicates in what state a worker is in after the   action was executed.rio-process-pool The resources is still required.rio-process-pool3The resource is still required but must be updated.rio-process-poolThe resource is obsolete and can be removed from the broker. The broker will call 8 either on the current, or an updated resource value. rio-process-pool"User supplied callback to use the  message and the associated resource. (Sync-) Exceptions thrown from this function are caught and lead to immediate cleanup of the resource but the broker continues.Type k is the key6 for the resource associated to an incoming messageType w2 is the type of incoming, demultiplexed, messages.Type a specifies the resource type.Type m is the base monad rio-process-pool2User supplied callback to extract the key and the  from a message. (Sync-) Exceptions thrown from this function are caught and lead to dropping of the incoming message, while the broker continues.k is the key6 for the resource associated to an incoming messagew'" is the type of incoming messages.w+ is the type of the demultiplexed messages. rio-process-pool"The broker configuration, used by .k is the key6 for the resource associated to an incoming messagew'" is the type of incoming messages.w+ is the type of the demultiplexed messages.a specifies the resource type.m is the base monadrio-process-poolThis is just what the  returned from ? returns, it's current purpose is to make code easier to read.Instead of some Async ()# that could be anything, there is Async BrokerResult.rio-process-poolSpawn a broker with a new  , and return its message ! channel as well as the  handle of the spawned process, needed to stop the broker process.k is the key6 for the resource associated to an incoming messagew'" is the type of incoming messages.w+ is the type of the demultiplexed messages.a specifies the resource type.m is the base monad   None- #$%&'(-./0256789<=>?rio-process-pool$A record containing the message box ! of the Broker and the  value required to " the pools broker process.rio-process-poolMessage sent to this input are dispatched to workers. If the message is an  Initialize message, a new #4 process will be started. If the message value is $, the processes is killed.rio-process-poolThe async of the internal Broker.rio-process-poolThe function that processes a   of a worker for a specific key.rio-process-poolStart a .4Start a process that receives messages sent to the  and dispatches them to the ! of  pool member processes. If necessary the pool worker processes are started.*Each pool worker process is started using # and executes the .1When the callback returns, the process will exit.Internally the pool uses the # function to wrap the callback.When a  Multiplixed  message is received with a Nothing then the worker is "led) and the worker is removed from the map./Such a message is automatically sent after the 8 has returned, even when an exception was thrown. See %.rio-process-poolThis message will ") the worker with the given key. If the $ wants to do cleanup it should use % or &.  None- #$%&'(-./0256789<=>?'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde fg h!ijkl!mnopqrstuvwxyz{|}~          !"#$%&'(&')*+,*+-./0*12*13&45&45&46&46&47&47&89&8:&8;&8<&8=&8>&8?&8@&8A&8B&8C&8D&8E&8F&8G&8H&8I&8J&8K&8L&8L&8M&NO&NP&NQ&NR&NS&NT&NU&NV&NW&NX&NY&NZ&N[&N\&N]&N^&N^&N_&N`&Na&Na&Nb&Nc&Nc&Nd&Nd&Ne&Ne&Nf&Nf&gh&gi&gj&gj&'k&'l&'m&'n&'o&'p&'q&'r&'s&'t&'u&'v&wx&wy&wz&wz&{|&{}&{~&{&{&{&&&&&&-rio-process-pool-1.0.0-CbADASBRIPML8CAhAQM73IRIO.ProcessPool.BrokerRIO.ProcessPool.PoolRIO.ProcessPoolResourceCleanerResourceCreator Multiplexed InitializeDispatchResourceUpdate KeepResourceUpdateResourceRemoveResourceMessageHandler Demultiplexer BrokerConfigMkBrokerConfig demultiplexermessageDispatcherresourceCreatorresourceCleaner BrokerResultMkBrokerResult spawnBroker$fShowBrokerResult$fEqBrokerResultPoolMkPool poolInput poolAsyncPoolWorkerCallbackMkPoolWorkerCallbackrunPoolWorkerCallback spawnPoolremovePoolWorkerMessage"async-2.2.3-6r4rKdZoy7p7xVQdBfaRvvControl.Concurrent.AsyncAsync0unliftio-messagebox-2.0.0-H92ktywoLYSFaUnyj4fer8UnliftIO.MessageBox.Class MessageBoxInput&unliftio-0.2.14-A9XYy3c1lE1BJ4iySI95GNUnliftIO.Internals.Asynccancelasyncbase GHC.MaybeNothingUnliftIO.Exceptionfinally onExceptionUnliftIO.MessageBox.CatchAll CatchAllArg CatchAllBox CatchAllInputUnliftIO.MessageBox.Command tryTakeReply waitForReply callAsync delegateCallreplyTocallcastCommand ReturnType FireAndForgetReturnMessageBlocking NonBlockingReplyBox CommandErrorBlockingCommandTimedOutCouldNotEnqueueCommandBlockingCommandFailureDuplicateReply AsyncReplyUnliftIO.MessageBox.LimitedmessageLimitToInt MessageLimitMessageLimit_4096MessageLimit_2048MessageLimit_1024MessageLimit_512MessageLimit_256MessageLimit_128MessageLimit_64MessageLimit_32MessageLimit_16MessageLimit_8MessageLimit_4MessageLimit_1MessageLimit_2BlockingBoxLimit BlockingBox BlockingInputNonBlockingBoxLimitNonBlockingBoxNonBlockingInputWaitingBoxLimit WaitingBox WaitingInputUnliftIO.MessageBox.Unlimited UnlimitedBoxUnlimitedBoxInputBlockingUnlimited handleMessageIsMessageBoxArg newMessageBoxgetConfiguredMessageLimit IsMessageBoxnewInput receiveAfter tryReceivereceiveIsInputdeliverdeliver_UnliftIO.MessageBox.Util.Future awaitFuturetryNowFutureUnliftIO.MessageBox.Util.CallIdtakeNextnewCallIdCounterCallIdMkCallIdHasCallIdCountergetCallIdCounterUnliftIO.MessageBox.Util.Fresh newCounterVarincrementAndGetfresh CounterVar HasCounterVar getCounterVar