From 7ed2a289bcd70824074acc21c646ca77601c07f3 Mon Sep 17 00:00:00 2001 From: Bruce Marriner Date: Sat, 28 May 2016 13:51:17 -0500 Subject: [PATCH] Fix possible mutex deadlock in handle() Also added some logging. --- discord.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/discord.go b/discord.go index 99cc0c7..cd60dd9 100644 --- a/discord.go +++ b/discord.go @@ -205,13 +205,13 @@ func (s *Session) handle(event interface{}) { if handlers, ok := s.handlers[nil]; ok { for _, handler := range handlers { - handler.Call(handlerParameters) + go handler.Call(handlerParameters) } } if handlers, ok := s.handlers[reflect.TypeOf(event)]; ok { for _, handler := range handlers { - handler.Call(handlerParameters) + go handler.Call(handlerParameters) } } } @@ -219,6 +219,8 @@ func (s *Session) handle(event interface{}) { // initialize adds all internal handlers and state tracking handlers. func (s *Session) initialize() { + s.log(LogInformational, "called") + s.handlersMu.Lock() if s.handlers != nil { s.handlersMu.Unlock()