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

Re: O_NONBLOCK under Windows (was: git.git as of tonight)

From
Stefan Beller <sbeller@google.com>
Date
Nov 4, 2015, 20:07 UTC
Message-ID
<CAGZ79kZk-oAcdVNHsFe_cRhR+TuGi8RqLYigHajC9KJu7ATJJw@mail.gmail.com>
In-Reply-To
<563A63BA.9020407@web.de>
On Wed, Nov 4, 2015 at 11:59 AM, Torsten Bögershausen <tboegi@web.de> wrote:
Show 21 quoted lines
> On 11/04/2015 12:00 AM, Stefan Beller wrote:
>> On Tue, Nov 3, 2015 at 1:03 PM, Johannes Sixt <j6t@kdbg.org> wrote:
>>
> The #ifdef assumes that Windows never will have O_NONBLOCK/F_GETFL)
>
> Does the following make more sense ?
> #if defined (O_NONBLOCK) && defined (F_GETFL)
>
> Or may be:
> #ifndef NO_O_NONBLOCK
>>> #ifndef GIT_WINDOWS_NATIVE
>>>         int flags = fcntl(fd, F_GETFL);
>>>         if (flags < 0)
>>>                 warning("Could not get file status flags, "
>>>                         "output will be degraded");
>>>         else if (fcntl(fd, F_SETFL, flags | O_NONBLOCK))
>>> #endif
>>>                 warning("Could not set file status flags, "
>>>                         "output will be degraded");
>>> }
>>>

Reading Junios answer to the resent patch[1], I am currently debating if this is the right way to go anyway. As Junio points out, this is not a warning but rather a critical issue such that we'd maybe rather die(...) than just warning(...), which would make the discussion about the correct condition in the #ifdef moot.

[1] [PATCHv3 02/11] run-command: report failure for degraded output just once
Previous: Torsten BögershausenNext: Stefan Beller
Message 11 of 18 in “git.git as of tonight”
  1. Junio C HamanoNov 2, 2015
  2. Johannes SixtNov 2, 2015
  3. Junio C HamanoNov 2, 2015
  4. Stefan BellerNov 2, 2015
  5. Johannes SixtNov 3, 2015
  6. Junio C HamanoNov 3, 2015
  7. Stefan BellerNov 3, 2015
  8. Johannes SixtNov 3, 2015
  9. Stefan BellerNov 3, 2015
  10. Torsten BögershausenNov 4, 2015
  11. Stefan BellerNov 4, 2015
  12. 0/2 Missing O_NONBLOCK under Windows (was: git.git as of tonight)Stefan Beller, Nov 4, 2015
  13. 1/2 run-parallel: rename set_nonblocking to set_nonblocking_or_dieStefan Beller, Nov 4, 2015
  14. Torsten BögershausenNov 5, 2015
  15. Junio C HamanoNov 5, 2015
  16. Junio C HamanoNov 5, 2015
  17. Jeff KingNov 5, 2015
  18. 2/2 run-parallel: Run sequential if nonblocking I/O is unavailableStefan Beller, Nov 4, 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.