{-# LANGUAGE DuplicateRecordFields #-}
module Arbiter.Concurrency
(
HasConcurrency (..)
, ConcurrencyFor
, noConcurrency
, concurrencyBy
, globalConcurrency
, concurrencyByCase
, chooseWhen
, ConcurrencyPolicy
, concurrencyPool
, policyPrefixOf
, ConcurrencyPolicyView (..)
, ConcurrencyKeyView (..)
, ConcurrencyPolicyUpdate (..)
, updateConcurrencyPolicyOverrides
, setConcurrencyLimit
, clearConcurrencyLimit
, pruneConcurrencyKeys
, reconcileConcurrencyCounts
, listConcurrencyPolicies
, listConcurrencyKeys
) where
import Arbiter.Core.Admission (AdmissionPolicy (..))
import Arbiter.Core.Concurrency.Spec
( ConcurrencyFor
, ConcurrencyPolicy
, HasConcurrency (..)
, chooseWhen
, concurrencyBy
, concurrencyByCase
, concurrencyPool
, globalConcurrency
, noConcurrency
)
import Arbiter.Core.Concurrency.Stats
( ConcurrencyKeyView (..)
, ConcurrencyPolicyUpdate (..)
, ConcurrencyPolicyView (..)
)
import Arbiter.Core.HighLevel
( clearConcurrencyLimit
, listConcurrencyKeys
, listConcurrencyPolicies
, pruneConcurrencyKeys
, reconcileConcurrencyCounts
, setConcurrencyLimit
, updateConcurrencyPolicyOverrides
)