perf: server 包异步消息不再执行额外 defer

This commit is contained in:
kercylan98 2023-10-21 13:28:54 +08:00
parent cdbf388498
commit b5b126ef07
1 changed files with 17 additions and 18 deletions

View File

@ -661,29 +661,28 @@ func (slf *Server) dispatchMessage(msg *Message) {
} }
present := time.Now() present := time.Now()
defer func(msg *Message) { if msg.t != MessageTypeAsync {
if err := recover(); err != nil { defer func(msg *Message) {
stack := string(debug.Stack()) if err := recover(); err != nil {
log.Error("Server", log.String("MessageType", messageNames[msg.t]), log.Any("MessageAttrs", msg.AttrsString()), log.Any("error", err), log.String("stack", stack)) stack := string(debug.Stack())
fmt.Println(stack) log.Error("Server", log.String("MessageType", messageNames[msg.t]), log.Any("MessageAttrs", msg.AttrsString()), log.Any("error", err), log.String("stack", stack))
if e, ok := err.(error); ok { fmt.Println(stack)
slf.OnMessageErrorEvent(msg, e) if e, ok := err.(error); ok {
slf.OnMessageErrorEvent(msg, e)
}
} }
}
if msg.t == MessageTypeAsync { super.Handle(cancel)
return slf.low(msg, present, time.Millisecond*100)
} slf.messageCounter.Add(-1)
super.Handle(cancel) if !slf.isShutdown.Load() {
slf.low(msg, present, time.Millisecond*100) slf.messagePool.Release(msg)
slf.messageCounter.Add(-1) }
if !slf.isShutdown.Load() { }(msg)
slf.messagePool.Release(msg) }
}
}(msg)
var attrs = msg.attrs var attrs = msg.attrs
switch msg.t { switch msg.t {
case MessageTypePacket: case MessageTypePacket: