diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-02-14 20:16:35 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-02-14 20:16:35 +0100 |
commit | 8080c17c21fc605674d1d257813e74bb4fb3cfc0 (patch) | |
tree | 721049c178ddc09ac7e8ae134452d21a862e6a7f | |
parent | bc723b0835442b7e3e2f97957f4aad0161b1d47f (diff) | |
download | cuirass-8080c17c21fc605674d1d257813e74bb4fb3cfc0.tar cuirass-8080c17c21fc605674d1d257813e74bb4fb3cfc0.tar.gz |
cuirass: Clear the build queue when starting.
* src/cuirass/base.scm (clear-build-queue): New procedure.
* bin/cuirass.in (main): Call it.
-rw-r--r-- | bin/cuirass.in | 1 | ||||
-rw-r--r-- | src/cuirass/base.scm | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/bin/cuirass.in b/bin/cuirass.in index ba10274..7e3c5cf 100644 --- a/bin/cuirass.in +++ b/bin/cuirass.in @@ -126,6 +126,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@" (let ((exit-channel (make-channel)) (pending (begin + (clear-build-queue db) (log-message "retrieving list of pending builds...") (db-get-builds db '((status pending)))))) diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm index ec0a016..3b1b463 100644 --- a/src/cuirass/base.scm +++ b/src/cuirass/base.scm @@ -49,6 +49,7 @@ fetch-repository compile evaluate + clear-build-queue restart-builds build-packages prepare-git @@ -452,6 +453,12 @@ updating DB accordingly." (string=? (assq-ref build1 #:derivation) (assq-ref build2 #:derivation))) +(define (clear-build-queue db) + "Reset the status of builds in DB that are marked as \"started\". This +procedure is meant to be called at startup." + (log-message "marking stale builds as \"scheduled\"...") + (sqlite-exec db "UPDATE Builds SET status = -2 WHERE status = -1;")) + (define (restart-builds db builds) "Restart builds whose status in DB is \"pending\" (scheduled or started)." (with-store store |