offload: Prevent locked files from being GC'd.
* guix/scripts/offload.scm (%slots): New variable. (choose-build-machine): Add SLOT to '%slots'.master
parent
7df3ade112
commit
5cc569dc73
|
@ -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)))
|
||||||
|
|
Reference in New Issue