forked from lix-project/lix
75989bdca7
The fact that queryPathInfo() is synchronous meant that we needed a thread for every concurrent binary cache lookup, even though they end up being handled by the same download thread. Requiring hundreds of threads is not a good idea. So now there is an asynchronous version of queryPathInfo() that takes a callback function to process the result. Similarly, enqueueDownload() now takes a callback rather than returning a future. Thus, a command like nix path-info --store https://cache.nixos.org/ -r /nix/store/slljrzwmpygy1daay14kjszsr9xix063-nixos-16.09beta231.dccf8c5 that returns 4941 paths now takes 1.87s using only 2 threads (the main thread and the downloader thread). (This is with a prewarmed CloudFront.) |
||
---|---|---|
.. | ||
affinity.cc | ||
affinity.hh | ||
archive.cc | ||
archive.hh | ||
args.cc | ||
args.hh | ||
compression.cc | ||
compression.hh | ||
finally.hh | ||
hash.cc | ||
hash.hh | ||
json.cc | ||
json.hh | ||
local.mk | ||
logging.cc | ||
logging.hh | ||
lru-cache.hh | ||
monitor-fd.hh | ||
pool.hh | ||
ref.hh | ||
regex.cc | ||
regex.hh | ||
serialise.cc | ||
serialise.hh | ||
sync.hh | ||
thread-pool.cc | ||
thread-pool.hh | ||
types.hh | ||
util.cc | ||
util.hh | ||
xml-writer.cc | ||
xml-writer.hh |