me
/
guix
Archived
1
0
Fork 0
This repository has been archived on 2024-08-07. You can view files and clone it, but cannot push or open issues/pull-requests.
guix/guix
Mathieu Othacehe f743f2046b
publish: Defer narinfo string creation to the http-write.
The "narinfo-string" procedure is expensive in term of IO operations and can
take a while under IO pressure, such a GC collecting. Defer its call to a new
thread created in the http-write procedure.

Fixes: <https://issues.guix.gnu.org/48468>
Partially fixes: <https://issues.guix.gnu.org/49089>

* guix/scripts/publish.scm (render-narinfo): Defer the narinfo string creation
to the http-write procedure.
(compression->sexp, sexp->compression): New procedures.
("X-Nar-Compression"): Use them.
("X-Narinfo-Compressions"): New custom header.
(strip-headers): Add the x-nar-path header.
(http-write): Add narinfo on-the-fly creation support. It happens in a
separated thread to prevent blocking the main thread.
2021-10-05 18:55:55 +00:00
..
build
build-system
import
scripts publish: Defer narinfo string creation to the http-write. 2021-10-05 18:55:55 +00:00
store
tests
android-repo-download.scm
avahi.scm
base16.scm
base32.scm
base64.scm
build-system.scm
bzr-download.scm
cache.scm
channels.scm
ci.scm
colors.scm
combinators.scm
config.scm.in
cpio.scm
cve.scm
cvs-download.scm
d3.v3.js
deprecation.scm
derivations.scm
describe.scm
diagnostics.scm
discovery.scm
docker.scm
download.scm
elf.scm
ftp-client.scm
gexp.scm
git-authenticate.scm
git-download.scm
git.scm
glob.scm
gnu-maintenance.scm
gnupg.scm
grafts.scm
graph.js
graph.scm
hg-download.scm
http-client.scm
i18n.scm
inferior.scm
ipfs.scm
licenses.scm
lint.scm
man-db.scm
memoization.scm
modules.scm
monad-repl.scm
monads.scm
nar.scm
narinfo.scm
openpgp.scm
packages.scm
pki.scm
profiles.scm
profiling.scm
progress.scm
quirks.scm
records.scm
remote.scm
repl.scm
scripts.scm
search-paths.scm
self.scm
serialization.scm
sets.scm
ssh.scm
status.scm
store.scm
substitutes.scm
svn-download.scm
swh.scm
tests.scm
transformations.scm
ui.scm
upstream.scm
utils.scm
workers.scm