summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaleb Ristvedt <caleb.ristvedt@cune.org>2020-05-06 11:52:16 -0500
committerCaleb Ristvedt <caleb.ristvedt@cune.org>2020-05-07 05:56:01 -0500
commitb338c41c824c57d9de506404717ea7b3d2887f45 (patch)
treecd139d88f958904cfc09f4c2c0ccc48c6942ce79
parent37edbc91e34fb5658261e637e6ffccdb381e5271 (diff)
nar: 'with-temporary-store-file' uses a single connection
Previously the 'with-store' form was entered every time a different temporary file was tried. This caused there to be as many simultaneous open connections as there were attempts, and prevented the (loop ...) call from being a tail call. This change fixes that. * guix/nar.scm (with-temporary-store-file): open connection once prior to entering the loop.
-rw-r--r--guix/nar.scm4
1 files changed, 2 insertions, 2 deletions
diff --git a/guix/nar.scm b/guix/nar.scm
index 0a6f59b09a..eff4becbce 100644
--- a/guix/nar.scm
+++ b/guix/nar.scm
@@ -138,8 +138,8 @@ held."
(define-syntax-rule (with-temporary-store-file name body ...)
"Evaluate BODY with NAME bound to the file name of a temporary store item
protected from GC."
- (let loop ((name (temporary-store-file)))
- (with-store store
+ (with-store store
+ (let loop ((name (temporary-store-file)))
;; Add NAME to the current process' roots. (Opening this connection to
;; the daemon allows us to reuse its code that deals with the
;; per-process roots file.)