stop the timer when the session's run loop returns

This commit is contained in:
Marten Seemann
2020-05-02 07:53:47 +07:00
parent 6d66eac1b9
commit 1db3f06e87
3 changed files with 13 additions and 0 deletions

View File

@@ -46,3 +46,8 @@ func (t *Timer) Reset(deadline time.Time) {
func (t *Timer) SetRead() {
t.read = true
}
// Stop stops the timer
func (t *Timer) Stop() {
t.t.Stop()
}

View File

@@ -77,4 +77,11 @@ var _ = Describe("Timer", func() {
Eventually(t.Chan()).Should(Receive())
Consistently(t.Chan()).ShouldNot(Receive())
})
It("stops", func() {
t := NewTimer()
t.Reset(time.Now().Add(50 * time.Millisecond))
t.Stop()
Consistently(t.Chan()).ShouldNot(Receive())
})
})

View File

@@ -605,6 +605,7 @@ runLoop:
s.logger.Infof("Connection %s closed.", s.logID)
s.cryptoStreamHandler.Close()
s.sendQueue.Close()
s.timer.Stop()
return closeErr.err
}