aboutsummaryrefslogtreecommitdiffstats
path: root/worker
diff options
context:
space:
mode:
Diffstat (limited to 'worker')
-rw-r--r--worker/imap/idler.go29
-rw-r--r--worker/mbox/worker.go25
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)
}
}
}