diff options
Diffstat (limited to 'worker')
-rw-r--r-- | worker/imap/idler.go | 29 | ||||
-rw-r--r-- | worker/mbox/worker.go | 25 |
2 files changed, 24 insertions, 30 deletions
diff --git a/worker/imap/idler.go b/worker/imap/idler.go index 055bab8b..69fdc4ca 100644 --- a/worker/imap/idler.go +++ b/worker/imap/idler.go @@ -134,23 +134,20 @@ func (i *idler) waitOnIdle() { i.log("wait for idle in background") go func() { defer logging.PanicHandler() - select { - case err := <-i.done: - if err == nil { - i.log("<=(idle) waited") - i.log("connect done->") - i.worker.PostMessage(&types.Done{ - Message: types.RespondTo(&types.Connect{}), - }, nil) - } else { - i.log("<=(idle) waited; with err: %v", err) - } - i.setWaiting(false) - i.stop = make(chan struct{}) - i.log("restart") - i.Start() - return + err := <-i.done + if err == nil { + i.log("<=(idle) waited") + i.log("connect done->") + i.worker.PostMessage(&types.Done{ + Message: types.RespondTo(&types.Connect{}), + }, nil) + } else { + i.log("<=(idle) waited; with err: %v", err) } + i.setWaiting(false) + i.stop = make(chan struct{}) + i.log("restart") + i.Start() }() } diff --git a/worker/mbox/worker.go b/worker/mbox/worker.go index ab16f91e..6114870e 100644 --- a/worker/mbox/worker.go +++ b/worker/mbox/worker.go @@ -363,20 +363,17 @@ func (w *mboxWorker) handleMessage(msg types.WorkerMessage) error { } func (w *mboxWorker) Run() { - for { - select { - case msg := <-w.worker.Actions: - msg = w.worker.ProcessAction(msg) - if err := w.handleMessage(msg); err == errUnsupported { - w.worker.PostMessage(&types.Unsupported{ - Message: types.RespondTo(msg), - }, nil) - } else if err != nil { - w.worker.PostMessage(&types.Error{ - Message: types.RespondTo(msg), - Error: err, - }, nil) - } + for msg := range w.worker.Actions { + msg = w.worker.ProcessAction(msg) + if err := w.handleMessage(msg); err == errUnsupported { + w.worker.PostMessage(&types.Unsupported{ + Message: types.RespondTo(msg), + }, nil) + } else if err != nil { + w.worker.PostMessage(&types.Error{ + Message: types.RespondTo(msg), + Error: err, + }, nil) } } } |