From 71ede90b568d31590b9aca0b56db3938b55ab791 Mon Sep 17 00:00:00 2001 From: Erik McClure Date: Tue, 18 Jul 2017 18:21:45 -0700 Subject: [PATCH] Fix #406: reconnect() can be called while still connected (#407) --- wsapi.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wsapi.go b/wsapi.go index 3206060..213ea72 100644 --- a/wsapi.go +++ b/wsapi.go @@ -709,6 +709,13 @@ func (s *Session) reconnect() { return } + // Certain race conditions can call reconnect() twice. If this happens, we + // just break out of the reconnect loop + if err == ErrWSAlreadyOpen { + s.log(LogInformational, "Websocket already exists, no need to reconnect") + return + } + s.log(LogError, "error reconnecting to gateway, %s", err) <-time.After(wait * time.Second)