From 8c63ed7b4e9bae10e956672ac0d021739823c395 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Apr 2025 10:08:00 +0100 Subject: [PATCH] Support listing resource pool resources --- knots/resource-pool.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/knots/resource-pool.scm b/knots/resource-pool.scm index bd69f95..76c11e6 100644 --- a/knots/resource-pool.scm +++ b/knots/resource-pool.scm @@ -567,6 +567,16 @@ waiters resources-last-used)) + (('list-resources reply) + (spawn-fiber + (lambda () + (put-message reply (list-copy resources)))) + + (loop resources + available + waiters + resources-last-used)) + (('stats reply) (let ((stats `((resources . ,(length resources)) @@ -965,3 +975,8 @@ available. Return the resource once PROC has returned." (raise-exception (make-resource-pool-timeout-error pool)))))) +(define (resource-pool-list-resources pool) + (let ((reply (make-channel))) + (put-message (resource-pool-channel pool) + (list 'list-resources reply)) + (get-message reply)))