06cb1d25266b5a0c303c3802d9ab150d84a929e4
Because there are a lot of file and database accesses, having a progress monitor is useful. Moreover, we no longer rely on JGit for ref updates, so we can't depend on its progress meter. This is a special progress meter implementation that multiplexes output from the various sub-tasks that ReceiveCommits performs. We need this multiplexing because we don't know ahead of time how much of most kinds of work must be performed. For example, a single ref update can close an arbitrary number of changes. The progress meter includes a "spinner" animation that updates the output every 500ms regardless of activity. Additionally, the whole progress meter updates whenever one sub-task increases by 1%. Because of this, the MultiProgressMonitor must run in the main thread to avoid I/O stalls, delegating work to a background worker. Change-Id: If7f355830387a1a36a4e3b7ca01693239ce2d956
Description
RETIRED, Gerrit as used by OpenStack