1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

guix: Cleanup store connection buffering.

This is handled with the builtin port buffer now, and the code to handle it
separately is unnecessary.

* guix/store.scm (store-connection-output-port, store-connection-flush-output)
(write-buffered-output): Remove procedures.
(client-stub, add-to-store, add-file-tree-to-store): Remove the buffered port.

Change-Id: Ief4e8d6c00fcf65eb0393bf91e86907181620664
This commit is contained in:
Christopher Baines
2025-12-09 14:54:23 +00:00
parent 50fcce6d3b
commit bb1e80dd7e

View File

@@ -228,9 +228,6 @@
(major store-connection-major-version)
(minor store-connection-minor-version)
(buffer store-connection-output-port) ;output port
(flush store-connection-flush-output) ;thunk
;; Caches. We keep them per-connection, because store paths build
;; during the session are temporary GC roots kept for the duration of
;; the session.
@@ -476,9 +473,6 @@ connection. Use with care."
(%make-store-connection port
(protocol-major version)
(protocol-minor version)
port
(lambda ()
(force-output port))
(make-hash-table 100)
(make-hash-table 100)
(make-vector
@@ -496,11 +490,6 @@ connection. Use with care."
(define-deprecated/alias nix-server-version store-connection-version)
(define (write-buffered-output server)
"Flush SERVER's output port."
(force-output (store-connection-output-port server))
((store-connection-flush-output server)))
(define (close-connection server)
"Close the connection to SERVER."
(close (store-connection-socket server)))
@@ -630,13 +619,12 @@ encoding conversion errors."
#'(server #:key arg ...)
#'(server arg ...))
docstring
(let* ((s (store-connection-socket server))
(buffered (store-connection-output-port server)))
(let* ((s (store-connection-socket server)))
(record-operation 'name)
(write-value integer id buffered)
(write-value type arg buffered)
(write-value integer id s)
(write-value type arg s)
...
(write-buffered-output server)
(force-output s)
;; Loop until the server is done sending error output.
(let loop ()
@@ -941,16 +929,15 @@ path."
;; We don't use the 'operation' macro so we can pass SELECT? to
;; 'write-file'.
(record-operation 'add-to-store)
(let ((port (store-connection-socket server))
(buffered (store-connection-output-port server)))
(let ((port (store-connection-socket server)))
(write-value integer (remote-procedure-id add-to-store)
buffered)
(write-value utf8-string basename buffered)
(write-value integer 1 buffered) ;obsolete, must be #t
(write-value boolean recursive? buffered)
(write-value utf8-string hash-algo buffered)
(write-file file-name buffered #:select? select?)
(write-buffered-output server)
port)
(write-value utf8-string basename port)
(write-value integer 1 port) ;obsolete, must be #t
(write-value boolean recursive? port)
(write-value utf8-string hash-algo port)
(write-file file-name port #:select? select?)
(force-output port)
(let loop ((done? (process-stderr server)))
(or done? (loop (process-stderr server))))
(read-value store-path port)))))
@@ -1056,20 +1043,19 @@ an arbitrary directory layout in the store without creating a derivation."
;; We don't use the 'operation' macro so we can use 'write-file-tree'
;; instead of 'write-file'.
(record-operation 'add-to-store/tree)
(let ((port (store-connection-socket server))
(buffered (store-connection-output-port server)))
(let ((port (store-connection-socket server)))
(write-value integer (remote-procedure-id add-to-store)
buffered)
(write-value utf8-string basename buffered)
(write-value integer 1 buffered) ;obsolete, must be #t
(write-value integer (if recursive? 1 0) buffered)
(write-value utf8-string hash-algo buffered)
(write-file-tree basename buffered
port)
(write-value utf8-string basename port)
(write-value integer 1 port) ;obsolete, must be #t
(write-value integer (if recursive? 1 0) port)
(write-value utf8-string hash-algo port)
(write-file-tree basename port
#:file-type+size file-type+size
#:file-port file-port
#:symlink-target symlink-target
#:directory-entries directory-entries)
(write-buffered-output server)
(force-output port)
(let loop ((done? (process-stderr server)))
(or done? (loop (process-stderr server))))
(let ((result (read-value store-path port)))