Re: [PATCH v3 2/8] test-tool genzeros: generate large amounts of data more efficiently
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 29, 2021, 22:50 UTC
- Message-ID
- <xmqqy26bh2cy.fsf@gitster.g>
- In-Reply-To
- <052197200141c321118b7766f5615a61f951e59f.1635515959.git.gitgitgadget@gmail.com>
"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 22 quoted lines
> @@ -12,9 +15,19 @@ int cmd__genzeros(int argc, const char **argv)
>
> count = argc > 1 ? strtoimax(argv[1], NULL, 0) : -1;
>
> - while (count < 0 || count--) {
> - if (putchar(0) == EOF)
> + /* Writing out individual NUL bytes is slow... */
> + while (count < 0)
> + if (write(1, zeros, ARRAY_SIZE(zeros)) < 0)
> return -1;
> +
> + while (count > 0) {
> + n = write(1, zeros, count < ARRAY_SIZE(zeros) ?
> + count : ARRAY_SIZE(zeros));
> +
> + if (n < 0)
> + return -1;
> +
> + count -= n;
> }
>
> return 0;This round looks OK to me.