~sircmpwn/aerc

e85ef71935c145307b67cf6af2477d1c2d041075 — Drew DeVault 11 months ago a81467d
Don't send Done until finished fetching messages
1 files changed, 3 insertions(+), 0 deletions(-)

M worker/imap/fetch.go
M worker/imap/fetch.go => worker/imap/fetch.go +3 -0
@@ 47,6 47,7 @@ func (imapw *IMAPWorker) handleFetchMessages(
	section *imap.BodySectionName) {

	messages := make(chan *imap.Message)
	done := make(chan interface{})

	go func() {
		for _msg := range messages {


@@ 77,6 78,7 @@ func (imapw *IMAPWorker) handleFetchMessages(
				}, nil)
			}
		}
		done <- nil
	}()

	if err := imapw.client.UidFetch(uids, items, messages); err != nil {


@@ 85,6 87,7 @@ func (imapw *IMAPWorker) handleFetchMessages(
			Error:   err,
		}, nil)
	} else {
		<-done
		imapw.worker.PostMessage(
			&types.Done{types.RespondTo(msg)}, nil)
	}