run_command: improve performance for logging and long lines
authorDominik Csapak <d.csapak@proxmox.com>
Thu, 30 Jul 2020 09:04:10 +0000 (11:04 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 19 Aug 2020 05:39:39 +0000 (07:39 +0200)
commitcb9db10c1a9855cf40ff13e81f9dd97d6a9b2698
tree21d8c9ac4b21ea25580da1bd42b53a6e0d1ee5cf
parent8fb28ab914a9a9db46f8994f481806e086b1246d
run_command: improve performance for logging and long lines

to call out/err/logfunc with each line, we search for a newline and call
outfunc/logfunc with everything before that

since we do a select/read (with 4096 size) in a loop, this means
that if we have very long lines, we search for a newline in an
ever growing buffer (for which we know does not contain a newline)

so instead, only search the new data for newlines

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
src/PVE/Tools.pm