Commit graph

28 commits

Author SHA1 Message Date
ce1b710bcf Use a queue for the resource pool waiters
All checks were successful
/ test (push) Successful in 8s
As this will maybe improve performance.
2025-06-30 22:57:08 +01:00
163d775496 Fix record-predicate that should be exception-predicate 2025-06-27 00:16:18 +02:00
09ca6cfb6b Fix resource-pool-destroy-resource-exception
Raising the exception is more consistent, and avoids returning the
resource.
2025-06-26 21:27:32 +02:00
ab5411da42 Make resource pool changes and add parallelism limiter
All checks were successful
/ test (push) Successful in 9s
This was motivated by trying to allow for completely cleaning up
resource pools, which involved removing their use of fiberize which
currently has no destroy mechanism.

As part of this, there's a new parallelism limiter mechanism using
resource pools rather than fibers, and also a fixed size resource
pool.

The tests now drain? and destroy the resource pools to check cleaning
up.
2025-06-26 10:43:46 +02:00
7ba77010ae Handle %stacks not being a pair
Not sure when this would happen, but guard against it.
2025-05-15 09:26:29 +01:00
8c63ed7b4e Support listing resource pool resources 2025-05-15 09:24:28 +01:00
838ee6f1e3 Enable destroying individual resources in a resource pool 2025-05-15 09:24:28 +01:00
1dca6d755e Allow specifying the resource-pool-channel 2025-04-27 10:52:36 +01:00
68cfbe0380 Use a condition for destroying resource pools
This avoids the situation where the resource pool is destroyed, so
there's no fiber to listen to the destroy request.
2025-04-27 10:03:06 +01:00
4f0eafef0a Resource pool max waiters and destroy changes
Add the ability to specify the max number of waiters for a resource
pool, this provides a more efficient way of avoiding waiters for a
resource pool continually rising.

This commit also improves the destroy behaviour.
2025-04-27 09:41:56 +01:00
8c0f04be4f Don't call put-message without unwinding the stack
When handling exceptions, as this is error prone.
2025-04-01 17:47:11 +03:00
21e328aebb Improve exception reporting 2025-02-27 13:22:36 +00:00
6337103525 Remove the resource pool reply timeout
By being smarter about how long to wait for replies.
2025-02-04 13:16:38 +00:00
a11cd24e57 Improve resource pool performance when there are lots of waiters 2025-02-04 13:16:10 +00:00
aadbee0d0e Improve handling of idle resources in the resource pool 2025-02-04 11:13:15 +00:00
bddc6c04ad Fix idle resource removal in the resource pool 2025-02-03 12:16:16 +01:00
a2ab770536 Tweak resource pool backtraces 2025-02-03 12:16:07 +01:00
dc98ef9dcc Improve exception reporting in the resource pool 2025-02-03 10:37:45 +01:00
823cd95628 Guard against the remove message not working 2025-02-03 09:55:57 +01:00
2910e66150 Fix issue with parallel creating resource pool resources 2025-02-02 11:29:25 +01:00
61451907a9 Improve resource pool destruction 2025-01-31 12:33:50 +01:00
eebb42e7a7 Default to an resource-pool add-resources-parallelism of 1
So that there aren't issues with concurrent resource addition, at
least by default.
2025-01-30 09:57:14 +01:00
dcb56ee2c5 Tweak the resource pool
Mostly to no longer sleep in the main fiber. Now the main fiber just
spawns other fibers when it would previously block on put-operation
and these other fibers communicate back to the main resource pool
fiber when necessary.

This should mean that the resource pool is more responsive.
2025-01-09 09:34:11 +00:00
409fa1df5c Allow customising the resource-pool put-message timeout 2025-01-08 12:23:18 +00:00
66e0c52bf4 Export resource-pool-name 2025-01-08 12:23:08 +00:00
0771a41fe0 Print resource pools without the channel
Since the channel printer prints quite a lot of text.
2025-01-06 19:22:50 +00:00
97a3116b81 Support getting the pool from the timeout error 2025-01-06 19:06:28 +00:00
2f39c58d6c Initial commit 2024-12-16 09:18:12 +00:00