offload: Prevent locked files from being GC'd.

* guix/scripts/offload.scm (%slots): New variable.
  (choose-build-machine): Add SLOT to '%slots'.
This commit is contained in:
Ludovic Courtès 2014-03-08 21:23:12 +01:00
parent 7df3ade112
commit 5cc569dc73
1 changed files with 8 additions and 1 deletions

View File

@ -383,6 +383,10 @@ connections allowed to MACHINE."
"Release SLOT, a build slot as returned as by 'acquire-build-slot'." "Release SLOT, a build slot as returned as by 'acquire-build-slot'."
(close-port slot)) (close-port slot))
(define %slots
;; List of acquired build slots (open ports).
'())
(define (choose-build-machine requirements machines) (define (choose-build-machine requirements machines)
"Return the best machine among MACHINES fulfilling REQUIREMENTS, or #f." "Return the best machine among MACHINES fulfilling REQUIREMENTS, or #f."
@ -418,7 +422,10 @@ connections allowed to MACHINE."
;; Return the best machine unless it's already overloaded. ;; Return the best machine unless it's already overloaded.
(if (< (machine-load best) 2.) (if (< (machine-load best) 2.)
best (begin
;; Prevent SLOT from being GC'd.
(set! %slots (cons slot %slots))
best)
(begin (begin
(release-build-slot slot) (release-build-slot slot)
#f))) #f)))