diff options
author | Christopher Baines <mail@cbaines.net> | 2023-07-24 10:13:38 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2023-07-24 13:59:18 +0100 |
commit | cafb37751c4f6d4560780d3a7062780c6a3507fb (patch) | |
tree | 65306adb1e7eef84eec86ce55d520e967ec523ce /bffe.scm | |
parent | cae04bb5eb4e07205f45e808ac48f1581be02d78 (diff) | |
download | bffe-cafb37751c4f6d4560780d3a7062780c6a3507fb.tar bffe-cafb37751c4f6d4560780d3a7062780c6a3507fb.tar.gz |
Submit builds faster
Using more parallelism through fibers.
Diffstat (limited to 'bffe.scm')
-rw-r--r-- | bffe.scm | 27 |
1 files changed, 21 insertions, 6 deletions
@@ -22,6 +22,12 @@ #:use-module (prometheus) #:use-module (logging logger) #:use-module (logging port-log) + #:use-module (fibers) + #:use-module (fibers scheduler) + #:use-module (fibers channels) + #:use-module (fibers conditions) + #:use-module ((guix-build-coordinator utils fibers) + #:select (call-with-sigint)) #:use-module (bffe server) #:use-module (bffe manage-builds) #:export (run-bffe-service)) @@ -51,10 +57,19 @@ (open-log! lgr) (set-default-logger! lgr) - (for-each start-submit-builds-thread - build) + (let ((finished? (make-condition))) + (call-with-sigint + (lambda () + (run-fibers + (lambda () + (for-each start-submit-builds-fibers + build) - (apply start-bffe-web-server - `(,@web-server-args - #:pid-file ,pid-file - #:metrics-registry ,metrics-registry)))) + (apply start-bffe-web-server + `(,@web-server-args + #:pid-file ,pid-file + #:metrics-registry ,metrics-registry)) + (wait finished?)) + #:hz 10 + #:parallelism 4)) + finished?)))) |