Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/fourmolu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,7 @@ jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: fourmolu/fourmolu-action@v6
- uses: actions/checkout@v4
- uses: haskell-actions/run-fourmolu@v11
with:
version: "0.18.0.0"
20 changes: 14 additions & 6 deletions fourmolu.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
comma-style: leading
indentation: 2
function-arrows: leading
haddock-style: single-line
comma-style: leading
import-export-style: leading
in-style: left-align
import-grouping: by-scope
indent-wheres: true
indentation: 2
let-style: inline
newlines-between-decls: 1
record-brace-space: true
newlines-between-decls: 1
haddock-style: single-line
let-style: inline
in-style: no-space
single-constraint-parens: never
single-deriving-parens: never
sort-constraints: true
sort-derived-classes: true
sort-deriving-clauses: true
trailing-section-operators: false
unicode: never
respectful: true
8 changes: 4 additions & 4 deletions src/Data/Pool.hs
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ takeResource pool = mask_ $ do
then do
q <- newEmptyTMVar
writeTVar (stripeVar lp) $! stripe {queueR = Queue q (queueR stripe)}
pure $
waitForResource (stripeVar lp) q >>= \case
pure
$ waitForResource (stripeVar lp) q >>= \case
Just a -> pure (a, lp)
Nothing -> do
a <- createResource (poolConfig pool) `onException` restoreSize (stripeVar lp)
Expand Down Expand Up @@ -133,8 +133,8 @@ takeAvailableResource pool lp stripe = case cache stripe of
a <- createResource (poolConfig pool) `onException` restoreSize (stripeVar lp)
pure (a, lp)
Entry a _ : as -> do
writeTVar (stripeVar lp) $!
stripe
writeTVar (stripeVar lp)
$! stripe
{ available = available stripe - 1
, cache = as
}
Expand Down
2 changes: 1 addition & 1 deletion src/Data/Pool/Internal.hs
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ newPool pc = do
stripeResources :: Int -> [(Int, Int)]
stripeResources numStripes =
let (base, rest) = quotRem (poolMaxResources pc) numStripes
in zip [1 .. numStripes] $ addRest (replicate numStripes base) rest
in zip [1 .. numStripes] $ addRest (replicate numStripes base) rest
where
addRest [] = error "unreachable"
addRest acc@(r : rs) = \case
Expand Down
8 changes: 4 additions & 4 deletions src/Data/Pool/Introspection.hs
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,15 @@ data Resource a = Resource
, acquisitionTime :: !Double
, creationTime :: !(Maybe Double)
}
deriving stock (Eq, Show, Generic)
deriving stock (Eq, Generic, Show)

-- | Describes how a resource was acquired from the pool.
data Acquisition
= -- | A resource was taken from the pool immediately.
Immediate
| -- | The thread had to wait until a resource was released.
Delayed
deriving stock (Eq, Show, Generic)
deriving stock (Eq, Generic, Show)

-- | 'Data.Pool.withResource' with introspection capabilities.
withResource :: Pool a -> (Resource a -> IO r) -> IO r
Expand All @@ -68,8 +68,8 @@ takeResource pool = mask_ $ do
then do
q <- newEmptyTMVar
writeTVar (stripeVar lp) $! stripe {queueR = Queue q (queueR stripe)}
pure $
waitForResource (stripeVar lp) q >>= \case
pure
$ waitForResource (stripeVar lp) q >>= \case
Just a -> do
t2 <- getMonotonicTime
let res =
Expand Down