Re: [PATCH 3/6] strbuf_getwholeline: use getc_unlocked
- From
Jeff King <peff@peff.net>
- Date
- Apr 5, 2015, 18:24 UTC
- Message-ID
- <20150405182401.GA13096@peff.net>
- In-Reply-To
- <CACsJy8Biv6D2foDxpn-CZhEsjn3WsPV=_A3UOnT4+1LVrpRnTw@mail.gmail.com>
On Sun, Apr 05, 2015 at 09:36:04PM +0700, Duy Nguyen wrote:
Show 11 quoted lines
> On Sun, Apr 5, 2015 at 11:56 AM, Jeff King <peff@peff.net> wrote: > > So we'd have to either: > > > > 1. Decide that doesn't matter. > > > > 2. Have callers specify a "damn the NULs, I want it fast" flag. > > 2+. Avoid FILE* interface and go with syscalls for reading > packed-refs? If mmaping the entire file could be a problem for some > platform because it's too large, we have code for reading (with > bufferring) from fd somewhere, e.g. index-pack.
There's strbuf_getwholeline_fd, but it's horrifically inefficient (one syscall per character). But the other option is to implement your own buffering, and we're generally better off letting stdio do that for us (the exception here is that stdio does not have a good NUL-safe "read until X" function).
-Peff