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

Re: [PATCHv2 2/7] xread: poll on non blocking fds

From
Jeff King <peff@peff.net>
Date
Dec 18, 2015, 03:14 UTC
Message-ID
<20151218031432.GB8467@sigill.intra.peff.net>
In-Reply-To
<CAGZ79kYHjH7QgChn6_GU9iLrtyouFQFuMAZKADZofgHjBS73-A@mail.gmail.com>
On Thu, Dec 17, 2015 at 12:51:08PM -0800, Stefan Beller wrote:
Show 19 quoted lines
> > poll() returns -1; errno = EAGAIN /* poll failed. If the fd was OK, the failure may be temporaly,
> >                                     as much as poll() can see.
> >                                     But most probably we run out ouf memory */
> 
> Before this patch we would not have asked poll, but had just a continue here,
> so I think we need to have it here again no matter of the return code
> of the poll.
> 
> If poll determines it is low on memory, this should not make this function fail,
> we can still do as good as we did before by just asking read
> repeatedly again, though?
> 
> So I'd be convinced now we'd want to have:
> 
>     poll(&pfd, 1, -1); /* this is only buying time
>                         for the fd to deliver data, in case it fails
>                         we don't care but just fall back to old
>                         behavior before this patch with busy spinning*/
>     continue;

Right. I think that is the only sensible thing, and your comment explains perfectly what is going on.

-Peff
Previous: Stefan BellerNext: Jeff King
Message 8 of 19 in “[PATCHv2 0/7] Rerolling sb/submodule-parallel-fetch for the time after 2.7”
  1. Stefan BellerDec 16, 2015
  2. 1/7 submodule.c: write "Fetching submodule <foo>" to stderrStefan Beller, Dec 16, 2015
  3. 2/7 xread: poll on non blocking fdsStefan Beller, Dec 16, 2015
  4. Torsten BögershausenDec 17, 2015
  5. Stefan BellerDec 17, 2015
  6. Torsten BögershausenDec 17, 2015
  7. Stefan BellerDec 17, 2015
  8. Jeff KingDec 18, 2015
  9. Jeff KingDec 18, 2015
  10. Torsten BögershausenDec 18, 2015
  11. Jeff KingDec 18, 2015
  12. Jeff KingDec 18, 2015
  13. 3/7 strbuf: add strbuf_read_once to read without blockingStefan Beller, Dec 16, 2015
  14. 4/7 sigchain: add command to pop all common signalsStefan Beller, Dec 16, 2015
  15. 5/7 run-command: add an asynchronous parallel child processorStefan Beller, Dec 16, 2015
  16. 6/7 fetch_populated_submodules: use new parallel job processingStefan Beller, Dec 16, 2015
  17. 7/7 submodules: allow parallel fetching, add tests and documentationStefan Beller, Dec 16, 2015
  18. Stefan BellerDec 16, 2015
  19. Junio C HamanoDec 16, 2015

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.