nar: Avoid opening the database an additional time.
authorLudovic Courtès <ludo@gnu.org>
Thu, 18 Jun 2020 09:58:41 +0000 (11:58 +0200)
committerLudovic Courtès <ludo@gnu.org>
Thu, 18 Jun 2020 12:48:17 +0000 (14:48 +0200)
* guix/nar.scm (finalize-store-file): Call 'register-items' and pass it
DB.  This avoids opening the database a second time and hopefully
reduces contention on 'db.sqlite-shm'.

guix/nar.scm

index eff4bec..16dfe28 100644 (file)
@@ -27,6 +27,7 @@
   ;; (guix store) since this is "daemon-side" code.
   #:use-module (guix store)
   #:use-module (guix store database)
+  #:use-module ((guix build store-copy) #:select (store-info))
 
   #:use-module (guix ui)                          ; for '_'
   #:use-module (gcrypt hash)
@@ -115,9 +116,8 @@ held."
 
           ;; Register TARGET.  As a side effect, it resets the timestamps of all
           ;; its files, recursively, and runs a deduplication pass.
-          (register-path target
-                         #:references references
-                         #:deriver deriver))
+          (register-items db
+                          (list (store-info target deriver references))))
 
         (when lock?
           (delete-file (string-append target ".lock"))