Flush the pack header as soon as its ready
When the output stream is deeply buffered (e.g. 1 MiB or more in an HTTP servlet on some containers) trying to kick out the header earlier will prevent the client from stalling hard while the first 1 MiB is received and it can process the pack header. Forcing a flush here lets the client see the header and start its progress monitor for "Receiving objects: (1/N)" so the user knows there is still activity occurring, even though the buffering may cause there to be some lag as the buffer fills up on the sending side. Change-Id: I3edf39e8f703fe87a738dc236d426b194db85e3a Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
de78cf3367
commit
cc6210619b
|
@ -487,6 +487,7 @@ public void writePack(ProgressMonitor compressMonitor,
|
|||
int objCnt = getObjectsNumber();
|
||||
writeMonitor.beginTask(JGitText.get().writingObjects, objCnt);
|
||||
out.writeFileHeader(PACK_VERSION_GENERATED, objCnt);
|
||||
out.flush();
|
||||
writeObjects(writeMonitor, out);
|
||||
writeChecksum(out);
|
||||
|
||||
|
|
Loading…
Reference in New Issue