diff --git a/discord.go b/discord.go index e985dbf..df50178 100644 --- a/discord.go +++ b/discord.go @@ -125,12 +125,24 @@ func (s *Session) Close() { s.DataReady = false - if s.listenChan != nil { - close(s.listenChan) + if s.heartbeatChan != nil { + select { + case <-s.heartbeatChan: + break + default: + close(s.heartbeatChan) + } + s.heartbeatChan = nil } - if s.heartbeatChan != nil { - close(s.heartbeatChan) + if s.listenChan != nil { + select { + case <-s.listenChan: + break + default: + close(s.listenChan) + } + s.listenChan = nil } if s.wsConn != nil {