This commit is contained in:
aozhiwei 2024-11-06 15:22:32 +08:00
parent 6ef94d7442
commit 37a99c4226

View File

@ -72,10 +72,13 @@ func (this *msgQueue) FireEvent(msgId int, args q5.Args) {
if !h.deleted {
h.cb(args)
} else {
h.entry.DelInit()
node.delingLock.Lock()
q5.AppendSlice(&node.delingHandlers, h)
node.delingLock.Unlock()
}
return true
})
this.clearNode(&node.delingLock, &node.delingHandlers)
node.addingLock.Lock()
defer node.addingLock.Unlock()
if !node.addingHead.Empty() {
@ -86,8 +89,21 @@ func (this *msgQueue) FireEvent(msgId int, args q5.Args) {
if !h.deleted {
node.head.AddTail(&h.entry)
h.cb(args)
} else {
node.delingLock.Lock()
q5.AppendSlice(&node.delingHandlers, h)
node.delingLock.Unlock()
}
return true
})
}
this.clearNode(&node.delingLock, &node.delingHandlers)
}
func (this *msgQueue) clearNode(delingLock *sync.Mutex, delingHandlers *[]*MsgHandler) {
delingLock.Lock()
defer delingLock.Unlock()
if len(*delingHandlers) > 0 {
*delingHandlers = []*MsgHandler{}
}
}