aboutsummaryrefslogtreecommitdiffstats
path: root/worker/imap/idler.go
diff options
context:
space:
mode:
Diffstat (limited to 'worker/imap/idler.go')
-rw-r--r--worker/imap/idler.go14
1 files changed, 8 insertions, 6 deletions
diff --git a/worker/imap/idler.go b/worker/imap/idler.go
index a658521a..4c2ce6e8 100644
--- a/worker/imap/idler.go
+++ b/worker/imap/idler.go
@@ -61,7 +61,8 @@ func (i *idler) isReady() bool {
}
func (i *idler) Start() {
- if i.isReady() {
+ switch {
+ case i.isReady():
i.stop = make(chan struct{})
go func() {
@@ -87,16 +88,17 @@ func (i *idler) Start() {
}
}()
- } else if i.isWaiting() {
+ case i.isWaiting():
i.log("not started: wait for idle to exit")
- } else {
+ default:
i.log("not started: client not ready")
}
}
func (i *idler) Stop() error {
var reterr error
- if i.isReady() {
+ switch {
+ case i.isReady():
close(i.stop)
select {
case err := <-i.done:
@@ -118,10 +120,10 @@ func (i *idler) Stop() error {
reterr = errIdleTimeout
}
- } else if i.isWaiting() {
+ case i.isWaiting():
i.log("not stopped: still idleing/hanging")
reterr = errIdleModeHangs
- } else {
+ default:
i.log("not stopped: client not ready")
reterr = nil
}