Re: [PATCH] wrapper: add workaround for open() returning EINTR
- From
Jeff King <peff@peff.net>
- Date
- Feb 24, 2021, 18:23 UTC
- Message-ID
- <YDaZtqRvdZWkyQVp@coredump.intra.peff.net>
- In-Reply-To
- <acb282ee-fc55-bbe0-8272-087bde180ea2@kdbg.org>
On Wed, Feb 24, 2021 at 08:20:57AM +0100, Johannes Sixt wrote:
Show 12 quoted lines
> Am 24.02.21 um 05:43 schrieb Jeff King: > > The workaround here is enabled all the time, without a Makefile knob, > > since it's a complete noop if open() never returns EINTR. I did push it > > into its own compat/ source file, though, since it has to #undef our > > macro redirection. Putting it in a file with other code risks confusion > > if more code is added after that #undef. > > I'm not so much opposed to "enable it all the time" in general, but when > we already have an override of open(), like for the Windows case in > compat/mingw.h, I find it a bit rough to put another wrapper around it, > even more so since we won't have the EINTR problem on Windows due to the > absence of signals.
That's fair. I don't think my new wrapper would interact well with mingw_open(). They are both trying to #define open. I think since mine comes later in git-compat-util.h, it is probably overriding mingw_open() completely on Windows, which is quite bad (we call into my function in wrapper.c, but then its "#undef open" means we get the original open(), not the previously defined wrapper).
-Peff