cbaines pushed a commit to branch master
in repository data-service.

commit c2ccd8100600d558342d1ad6546cc43a63237c33
Author: Christopher Baines <[email protected]>
AuthorDate: Sun Aug 18 09:48:08 2024 +0100

    Improve the implementation of checking for idle resources
---
 guix-data-service/utils.scm | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/guix-data-service/utils.scm b/guix-data-service/utils.scm
index 71426f8..393db95 100644
--- a/guix-data-service/utils.scm
+++ b/guix-data-service/utils.scm
@@ -160,6 +160,13 @@
         (checkout-failure-count 0))
     (spawn-fiber
      (lambda ()
+       (when idle-seconds
+         (spawn-fiber
+          (lambda ()
+            (while #t
+              (sleep idle-seconds)
+              (put-message channel '(check-for-idle-resources))))))
+
        (while #t
          (with-exception-handler
              (lambda (exn)
@@ -174,15 +181,7 @@
                         (waiters '())
                         (resources-last-used '()))
 
-               (match (if idle-seconds
-                          (perform-operation
-                           (choice-operation
-                            (get-operation channel)
-                            (wrap-operation
-                             ;; TODO Do something smarter
-                             (sleep-operation 10)
-                             (const '(check-for-idle-resources)))))
-                          (get-message channel))
+               (match (get-message channel)
                  (('checkout reply)
                   (if (null? available)
                       (if (= (length resources) max-size)

Reply via email to