git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] midx: use buffered I/O to talk to pack-objects

From
Chris Torek <chris.torek@gmail.com>
Date
Aug 2, 2020, 16:11 UTC
Message-ID
<CAPx1GveChRzsA=FayzhZRSQLPz+o1Po3-_9ZvAGLPztpH5Jg9w@mail.gmail.com>
In-Reply-To
<c5920e08-b7dd-e870-f99e-225d0aafc663@web.de>
On Sun, Aug 2, 2020 at 7:40 AM René Scharfe <l.s.r@web.de> wrote:
Show 21 quoted lines
> @@ -1443,10 +1446,15 @@ int midx_repack(struct repository *r, const char *object_dir, size_t batch_size,
>                         continue;
>
>                 nth_midxed_object_oid(&oid, m, i);
> -               xwrite(cmd.in, oid_to_hex(&oid), the_hash_algo->hexsz);
> -               xwrite(cmd.in, "\n", 1);
> +               fprintf(cmd_in, "%s\n", oid_to_hex(&oid));
> +       }
> +
> +       if (fclose(cmd_in)) {
> +               error_errno(_("could not close stdin of pack-objects"));
> +               result = 1;
> +               finish_command(&cmd);
> +               goto cleanup;
>         }
> -       close(cmd.in);
>
>         if (finish_command(&cmd)) {
>                 error(_("could not finish pack-objects"));
> --
> 2.28.0

Here, we don't have any explicit errno checking, but of course error_errno() uses errno. This too needs an ferror() (or fflush()) test before the final fclose(), and then we just need to use plain error(). Otherwise you'll need the clumsier test-after-each-fprintf() and an explicit final fflush()-and-test.

Chris
Previous: René ScharfeNext: Johannes Sixt
Message 2 of 14 in “midx: use buffered I/O to talk to pack-objects”
  1. midx: use buffered I/O to talk to pack-objectsRené Scharfe, Aug 2, 2020
  2. Chris TorekAug 2, 2020
  3. Johannes SixtAug 3, 2020
  4. René ScharfeAug 3, 2020
  5. René ScharfeAug 4, 2020
  6. Junio C HamanoAug 4, 2020
  7. Derrick StoleeAug 3, 2020
  8. René ScharfeAug 11, 2020
  9. Derrick StoleeAug 11, 2020
  10. midx: use buffered I/O to talk to pack-objectsRené Scharfe, Aug 12, 2020
  11. Junio C HamanoAug 12, 2020
  12. Junio C HamanoAug 12, 2020
  13. Jeff KingAug 13, 2020
  14. Jeff KingAug 13, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.