Hi Junio, On Wed, 16 Dec 2015, Junio C Hamano wrote: > Johannes Schindelin <johannes.schindelin@xxxxxx> writes: > > > int mingw_fflush(FILE *stream); > > #define fflush mingw_fflush > > > > +static inline ssize_t mingw_write(int fd, const void *buf, size_t len) > > +{ > > + ssize_t result = write(fd, buf, len); > > + > > + if (result < 0 && errno == EINVAL && buf) { > > + /* check if fd is a pipe */ > > + HANDLE h = (HANDLE) _get_osfhandle(fd); > > + if (GetFileType(h) == FILE_TYPE_PIPE) > > + errno = EPIPE; > > + else > > + errno = EINVAL; > > + } > > + > > + return result; > > +} > > + > > +#define write mingw_write > > + > > It strikes me a bit strange to see this inlined compared to what > appears in the context. Shouldn't the implementation be done in > compat/mingw.c like all others? My intuition (which I honestly did not verify using performance tests) was that write() is called *much* more often than, say, open(), and therefore I wanted to interfere as little as possible with the performance penalty. Hence the choice of an inlined function as opposed to a non-optimizable increment of the call chain. If it bothers you a lot I will set aside time to perform performance tests. Ciao, Dscho -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html