diff options
author | Christopher Baines <mail@cbaines.net> | 2024-12-15 19:08:28 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2024-12-15 20:17:10 +0000 |
commit | 8b49884816c51593e6cd87b661a16f25b7f3e94a (patch) | |
tree | d47569bd7746c3a2d11bff4f6a36b9a2f6323ac4 /guix-data-service/jobs | |
parent | a33e32275e24849e3612d60878589c3c0d0107cd (diff) | |
download | data-service-8b49884816c51593e6cd87b661a16f25b7f3e94a.tar data-service-8b49884816c51593e6cd87b661a16f25b7f3e94a.tar.gz |
Use knots
A library of extracted Guile Fibers patterns and utilities.
Diffstat (limited to 'guix-data-service/jobs')
-rw-r--r-- | guix-data-service/jobs/load-new-guix-revision.scm | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/guix-data-service/jobs/load-new-guix-revision.scm b/guix-data-service/jobs/load-new-guix-revision.scm index dfa41ec..e18528a 100644 --- a/guix-data-service/jobs/load-new-guix-revision.scm +++ b/guix-data-service/jobs/load-new-guix-revision.scm @@ -38,6 +38,12 @@ #:use-module (fibers timers) #:use-module (fibers channels) #:use-module (fibers operations) + #:use-module (knots) + #:use-module (knots queue) + #:use-module (knots promise) + #:use-module (knots parallelism) + #:use-module (knots resource-pool) + #:use-module (knots worker-threads) #:use-module (guix monads) #:use-module (guix base32) #:use-module (guix store) @@ -1127,7 +1133,7 @@ SELECT 1 FROM derivation_source_file_nars WHERE derivation_source_file_id = $1" (insert-derivations))) (unless (null? derivations) - (parallel-via-fibers + (fibers-parallel (insert-sources derivations derivation-ids) (with-time-logging @@ -1906,7 +1912,7 @@ SELECT 1 FROM derivation_source_file_nars WHERE derivation_source_file_id = $1" (inferior-lint-checkers inferior))))) (when inferior-lint-checkers-data - (letpar& ((lint-checker-ids + (fibers-let ((lint-checker-ids (with-resource-from-pool postgresql-connection-pool conn (lint-checkers->lint-checker-ids conn @@ -2181,7 +2187,7 @@ SELECT 1 FROM derivation_source_file_nars WHERE derivation_source_file_id = $1" (with-time-logging (simple-format #f "extract-information-from: ~A\n" store-item) - (parallel-via-fibers + (fibers-parallel (begin (fibers-force package-ids-promise) #f) @@ -2267,7 +2273,7 @@ SELECT 1 FROM derivation_source_file_nars WHERE derivation_source_file_id = $1" extra-inferior-environment-variables) (define utility-thread-channel ;; There might be high demand for this, so order the requests - (make-queueing-channel + (spawn-queueing-fiber (call-with-default-io-waiters (lambda () (make-worker-thread-channel @@ -2791,6 +2797,12 @@ SKIP LOCKED") (exec-query conn "BEGIN") + ;; (spawn-fiber + ;; (lambda () + ;; (while #t + ;; (sleep (* 60 5)) + ;; (profile-heap)))) + (spawn-fiber (lambda () (while (perform-operation @@ -2864,7 +2876,7 @@ SKIP LOCKED") id)))))) (when result - (parallel-via-fibers + (fibers-parallel (with-postgresql-connection (simple-format #f "post load-new-guix-revision ~A counts" id) (lambda (conn) |