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:
@@ -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)))
|
||||
|
||||
Reference in New Issue
Block a user