From b5b126ef073dff627ce533a3bb0ca7f1c0f8c0da Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Sat, 21 Oct 2023 13:28:54 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20server=20=E5=8C=85=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E4=B8=8D=E5=86=8D=E6=89=A7=E8=A1=8C=E9=A2=9D?= =?UTF-8?q?=E5=A4=96=20defer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/server.go | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/server/server.go b/server/server.go index b632fc6..0f251d1 100644 --- a/server/server.go +++ b/server/server.go @@ -661,29 +661,28 @@ func (slf *Server) dispatchMessage(msg *Message) { } present := time.Now() - defer func(msg *Message) { - if err := recover(); err != nil { - stack := string(debug.Stack()) - log.Error("Server", log.String("MessageType", messageNames[msg.t]), log.Any("MessageAttrs", msg.AttrsString()), log.Any("error", err), log.String("stack", stack)) - fmt.Println(stack) - if e, ok := err.(error); ok { - slf.OnMessageErrorEvent(msg, e) + if msg.t != MessageTypeAsync { + defer func(msg *Message) { + if err := recover(); err != nil { + stack := string(debug.Stack()) + log.Error("Server", log.String("MessageType", messageNames[msg.t]), log.Any("MessageAttrs", msg.AttrsString()), log.Any("error", err), log.String("stack", stack)) + fmt.Println(stack) + if e, ok := err.(error); ok { + slf.OnMessageErrorEvent(msg, e) + } } - } - if msg.t == MessageTypeAsync { - return - } + super.Handle(cancel) + slf.low(msg, present, time.Millisecond*100) + slf.messageCounter.Add(-1) - super.Handle(cancel) - slf.low(msg, present, time.Millisecond*100) - slf.messageCounter.Add(-1) + if !slf.isShutdown.Load() { + slf.messagePool.Release(msg) + } - if !slf.isShutdown.Load() { - slf.messagePool.Release(msg) - } + }(msg) + } - }(msg) var attrs = msg.attrs switch msg.t { case MessageTypePacket: