Rework the resource pool implementations
Some checks are pending
/ test (push) Waiting to run

Don't rely on resource equality for keeping track of resources and
make some other tweaks.
This commit is contained in:
Christopher Baines 2025-11-24 21:54:00 +00:00
parent d07e309566
commit 3eba6fc820
2 changed files with 507 additions and 534 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,33 @@
(use-modules (tests) (use-modules (tests)
(fibers) (fibers)
(fibers channels)
(unit-test) (unit-test)
(knots parallelism) (knots parallelism)
(knots resource-pool)) (knots resource-pool))
(run-fibers-for-tests
(lambda ()
(let ((parallelism-limiter (make-parallelism-limiter
1)))
(with-parallelism-limiter parallelism-limiter
#f)
(destroy-parallelism-limiter parallelism-limiter))))
(run-fibers-for-tests
(lambda ()
(let ((parallelism-limiter (make-parallelism-limiter
1))
(channel
(make-channel)))
(spawn-fiber
(lambda ()
(with-parallelism-limiter parallelism-limiter
(put-message channel #t)
(sleep 1))))
(get-message channel)
(destroy-parallelism-limiter parallelism-limiter))))
(define new-number (define new-number
(let ((val 0)) (let ((val 0))
(lambda () (lambda ()