Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- oneBytes :: ByteString
- data HCA = HCA {}
- newHCA :: Subspace -> HCA
- windowSize :: Int -> Int
- globalAllocateLock :: MVar ()
- withAllocLock :: Transaction a -> Transaction a
- findStartAndWindow :: HCA -> Bool -> Int -> Transaction (Int, Int)
- findSubspaceLoop :: HCA -> Subspace -> Int -> Int -> Transaction (Maybe Subspace)
- initStart :: HCA -> Transaction Int
- allocate :: HCA -> Subspace -> Transaction Subspace
Documentation
windowSize :: Int -> Int Source #
globalAllocateLock :: MVar () Source #
global lock used for allocating. We use this simply because the other clients have it. It appears to exist in order to reduce contention on the HCA counter at the transaction level by pushing some of the contention to the client level instead.
withAllocLock :: Transaction a -> Transaction a Source #
findStartAndWindow :: HCA -> Bool -> Int -> Transaction (Int, Int) Source #
findSubspaceLoop :: HCA -> Subspace -> Int -> Int -> Transaction (Maybe Subspace) Source #