diff --git a/pkg/tasks/tasks.go b/pkg/tasks/tasks.go index deaeee042..f9b309c3d 100644 --- a/pkg/tasks/tasks.go +++ b/pkg/tasks/tasks.go @@ -212,8 +212,13 @@ func (self *ViewBufferManager) StartLoading() { } func (self *ViewBufferManager) ReadToEnd(then func()) { - // The reading happens on the task's own goroutine, and the caller hears about - // it through then, so lazygit must not count as idle in between. + self.readHoldingATask(-1, then) +} + +// readHoldingATask asks the task to have read totalLines lines in total (-1 for all of +// them) and calls then once it has. The reading happens on the task's own goroutine and +// the caller is waiting on the result, so lazygit must not count as idle in between. +func (self *ViewBufferManager) readHoldingATask(totalLines int, then func()) { task := self.newGocuiTask() answered := func() { task.Done() @@ -222,7 +227,7 @@ func (self *ViewBufferManager) ReadToEnd(then func()) { } } - request := LinesToRead{Total: -1, InitialRefreshAfter: -1, Then: answered} + request := LinesToRead{Total: totalLines, InitialRefreshAfter: -1, Then: answered} if !self.readRequests.enqueue(request) { // With no task reading, everything there is to read has been read. answered()