diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-03-27 18:39:28 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-03-27 22:52:51 +0100 |
commit | 45fce38fb0b6c6796906149ade145b8d3594c1c6 (patch) | |
tree | dc838d1820abe2f7685d0f35b5352d6ca6544c1d /gnu/packages | |
parent | 3f4a71a44efb2b1a2a5c994598021b441aada7a3 (diff) | |
download | 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 'gnu/packages')
0 files changed, 0 insertions, 0 deletions