Îõ³h$-ÜÁ      !"#$%&'()*+,-./0123456789:;<=>?@None8ÔÙàì ¾ resource-poolConfiguration of a . resource-pool'The action that creates a new resource. resource-pool.The action that destroys an existing resource. resource-poolåThe amount of seconds for which an unused resource is kept around. The smallest acceptable value is 0.5.Note:‹ the elapsed time before destroying a resource may be a little longer than requested, as the collector thread wakes at 1-second intervals. resource-poolãThe maximum number of resources to keep open across all stripes. The smallest acceptable value is 1.Note:“ for each stripe the number of resources is divided by the number of capabilities and rounded up. Therefore the pool might end up creating up to N - 1/ resources more in total than specified, where N is the number of capabilities. resource-poolÀA queue of MVarS corresponding to threads waiting for resources.>Basically a monomorphic list to save two pointer indirections.  resource-pool1An existing resource currently sitting in a pool.  resource-poolStripe of a resource pool. If  availableÌ is 0, the list of threads waiting for a resource (each with an associated A) is queue ++ reverse queueR. resource-pool A single, capability-local pool. resource-poolStriped resource pool based on Control.Concurrent.QSem.ÑThe number of stripes is arranged to be equal to the number of capabilities so that they never compete over access to the same stripe. This results in a very good performance in a multi-threaded environment. resource-pool#Create a new striped resource pool.=The number of stripes is equal to the number of capabilities.Note:… although the runtime system will destroy all idle resources when the pool is garbage collected, it's recommended to manually call  Ø when you're done with the pool so that the resources are freed up as soon as possible. resource-poolDestroy a resource.ÂNote that this will ignore any exceptions in the destroy function. resource-poolReturn a resource to the given .  resource-pool1Destroy all resources in all stripes in the pool.ÂNote that this will ignore any exceptions in the destroy function.üThis function is useful when you detect that all resources in the pool are broken. For example after a database has been restarted all connections opened before the restart will be broken. In that case it's better to close those connections so that  takeResourceÖ won't take a broken connection from the pool but will open a new connection instead.êAnother use-case for this function is that when you know you are done with the pool you can destroy all idle resources immediately instead of waiting on the garbage collector to destroy them, thus freeing up those resources sooner.! resource-poolGet a capability-local pool." resource-pool-Wait for the resource to be put into a given A.# resource-poolèIf an exception is received while a resource is being created, restore the original size of the stripe.$ resource-poolÃFree resource entries in the stripes that fulfil a given condition.'  !"#$%&'   !"#$%&None8ÔÙàì ' resource-poolßTake a resource from the pool, perform an action with it and return it to the pool afterwards.ÃIf the pool has an idle resource available, it is used immediately.îOtherwise, if the maximum number of resources has not yet been reached, a new resource is created and used.ðIf the maximum number of resources has been reached, this function blocks until a resource becomes available.çIf the action throws an exception of any type, the resource is destroyed and not returned to the pool.ÓIt probably goes without saying that you should never manually destroy a pooled resource, as doing so will almost certainly cause a subsequent user (who expects the resource to be valid) to throw an exception.( resource-pool>Take a resource from the pool, following the same results as '.Note:/ this function returns both a resource and the 7 it came from so that it may either be destroyed (via  ) or returned to the pool (via ).) resource-pool A variant of '. that doesn't execute the action and returns B? instead of blocking if the capability-local pool is exhausted.* resource-pool A variant of ( that returns BÀ instead of blocking if the capability-local pool is exhausted.+ resource-pool Provided for compatibility with resource-pool < 0.3.Use  instead. '()*+'()* +None8ÔÙàì¢, resource-pool4Describes how a resource was acquired from the pool.- resource-pool/A resource was taken from the pool immediately.. resource-pool5The thread had to wait until a resource was released./ resource-poolÁA resource taken from the pool along with additional information.7 resource-pool! with introspection capabilities.8 resource-pool! with introspection capabilities.9 resource-pool A variant of 7. that doesn't execute the action and returns B? instead of blocking if the capability-local pool is exhausted.: resource-pool A variant of 8 that returns BÀ instead of blocking if the capability-local pool is exhausted. ,-./0123456789:/0123456,-.789: à        !"#$%&'()*+,--./0123'(456789:;<:=>?,resource-pool-0.3.1.0-Fnx9hvfaoooEyNcTCm2Pyr Data.PoolData.Pool.InternalData.Pool.Introspection withResource takeResource PoolConfigcreateResource freeResource poolCacheTTLpoolMaxResourcesQueueEmptyEntryentrylastUsedStripe availablecachequeuequeueR LocalPoolstripeId stripeVar cleanerRefPool poolConfig localPools reaperRefnewPooldestroyResource putResourcedestroyAllResources getLocalPoolwaitForResource restoreSize cleanStripesignal reverseQueuetryWithResourcetryTakeResource createPool Acquisition ImmediateDelayedResourceresource stripeNumberavailableResources acquisitionacquisitionTime creationTime $fEqResource$fShowResource$fGenericResource$fEqAcquisition$fShowAcquisition$fGenericAcquisitionbaseGHC.MVarMVar GHC.MaybeNothing