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

Re: [PATCH] stream_to_pack: xread does not guarantee to read all requested bytes

From
Johannes Sixt <j6t@kdbg.org>
Date
Aug 20, 2013, 18:27 UTC
Message-ID
<5213B52F.7030205@kdbg.org>
In-Reply-To
<CALWbr2yaQaCte6+Y3GEa8Hxyhq6GPS64aTNzkGo8pdpcd9ZVUg@mail.gmail.com>
Am 20.08.2013 17:16, schrieb Antoine Pelisse:
> I was actually wondering when it's better to use xread() over
> read_in_full() ? Considering that we don't know if xread() will read
> the whole buffer or not, would it not be better to always use
> read_in_full() ?

Of course, you know whether the whole buffer was filled: xread() returns the number of bytes read. Same for xwrite().

> I guess there is a drawback to this, but I'm not
> exactly sure what it is.

The disadvantage of read_in_full() is that it can happen that it reads data from the stream successfully, but then reports an error. In this case, the data read is lost.

Analogously, when write_in_full() writes (some) data successfully, but ultimately fails, you don't know how much was written successfully.

-- Hannes
Previous: Junio C HamanoNext: Johannes Sixt
Message 5 of 8 in “stream_to_pack: xread does not guarantee to read all requested bytes”
  1. stream_to_pack: xread does not guarantee to read all requested bytesJohannes Sixt, Aug 20, 2013
  2. Junio C HamanoAug 20, 2013
  3. Antoine PelisseAug 20, 2013
  4. Junio C HamanoAug 20, 2013
  5. Johannes SixtAug 20, 2013
  6. Johannes SixtAug 20, 2013
  7. Junio C HamanoAug 20, 2013
  8. Johannes SixtAug 20, 2013

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.