Fix dangling goroutine on session expiration

The timer channel may already have been drained by `case <-timer.C`. In
this case, we need not to drain it again or we'll block forever.

To fix this, stop draining the timer channel. Since we're not going to
use the timer again anyway, it should be fine.
This commit is contained in:
Simon Ser 2020-01-20 15:25:46 +01:00
parent 8b10324ab6
commit e6e457e4a7
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48

View file

@ -237,9 +237,7 @@ func (sm *SessionManager) Put(username, password string) (*Session, error) {
}
}
if !timer.Stop() {
<-timer.C
}
timer.Stop()
s.locker.Lock()
if s.imapConn != nil {