From 457b03f66ee45a27f37486dc0839e8aac8fb4fb7 Mon Sep 17 00:00:00 2001 From: Chris Rhodes Date: Fri, 19 Feb 2016 23:00:41 -0800 Subject: [PATCH] Fix deadlock because I'm dumb. --- discord.go | 6 ++++-- wsapi.go | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/discord.go b/discord.go index 194e57f..e340a9b 100644 --- a/discord.go +++ b/discord.go @@ -196,11 +196,13 @@ func (s *Session) AddHandler(handler interface{}) func() { // handle calls any handlers that match the event type and any handlers of // interface{}. func (s *Session) handle(event interface{}) { - s.initialize() - s.handlersMu.RLock() defer s.handlersMu.RUnlock() + if s.handlers == nil { + return + } + handlerParameters := []reflect.Value{reflect.ValueOf(s), reflect.ValueOf(event)} if handlers, ok := s.handlers[reflect.TypeOf(event)]; ok { diff --git a/wsapi.go b/wsapi.go index a2bbef5..7dc320a 100644 --- a/wsapi.go +++ b/wsapi.go @@ -88,6 +88,7 @@ func (s *Session) Open() (err error) { s.Unlock() + s.initialize() s.handle(&Connect{}) return