aboutsummaryrefslogtreecommitdiff
path: root/guix.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-03-27 18:39:28 +0100
committerLudovic Courtès <ludo@gnu.org>2021-03-27 22:52:51 +0100
commit45fce38fb0b6c6796906149ade145b8d3594c1c6 (patch)
treedc838d1820abe2f7685d0f35b5352d6ca6544c1d /guix.scm
parent3f4a71a44efb2b1a2a5c994598021b441aada7a3 (diff)
downloadguix-45fce38fb0b6c6796906149ade145b8d3594c1c6.tar
guix-45fce38fb0b6c6796906149ade145b8d3594c1c6.tar.gz
http-client: 'http-multiple-get' is tail-recursive again.
Fixes <https://bugs.gnu.org/47283>. Commit 205833b72c5517915a47a50dbe28e7024dc74e57 made 'http-multiple-get' non-tail-recursive. Each recursive call would install an exception handler. As the number of iterations grows beyond 1,000, quadratic complexity of 'raise-exception' would show and we'd spend most of our time there. * guix/http-client.scm (false-if-networking-error): New macro. (http-multiple-get): Use it around 'write-request' and 'put-bytevector' calls, and around 'read-response' call, in lieu of the inline 'catch' forms.
Diffstat (limited to 'guix.scm')
0 files changed, 0 insertions, 0 deletions