Don't send Done until finished fetching messages

This commit is contained in:
Drew DeVault 2019-06-02 13:26:43 -04:00
parent a81467dda9
commit e85ef71935
1 changed files with 3 additions and 0 deletions

View File

@ -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)
}