1
This commit is contained in:
parent
6ef94d7442
commit
37a99c4226
18
msgqueue.go
18
msgqueue.go
@ -72,10 +72,13 @@ func (this *msgQueue) FireEvent(msgId int, args q5.Args) {
|
|||||||
if !h.deleted {
|
if !h.deleted {
|
||||||
h.cb(args)
|
h.cb(args)
|
||||||
} else {
|
} else {
|
||||||
h.entry.DelInit()
|
node.delingLock.Lock()
|
||||||
|
q5.AppendSlice(&node.delingHandlers, h)
|
||||||
|
node.delingLock.Unlock()
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
|
this.clearNode(&node.delingLock, &node.delingHandlers)
|
||||||
node.addingLock.Lock()
|
node.addingLock.Lock()
|
||||||
defer node.addingLock.Unlock()
|
defer node.addingLock.Unlock()
|
||||||
if !node.addingHead.Empty() {
|
if !node.addingHead.Empty() {
|
||||||
@ -86,8 +89,21 @@ func (this *msgQueue) FireEvent(msgId int, args q5.Args) {
|
|||||||
if !h.deleted {
|
if !h.deleted {
|
||||||
node.head.AddTail(&h.entry)
|
node.head.AddTail(&h.entry)
|
||||||
h.cb(args)
|
h.cb(args)
|
||||||
|
} else {
|
||||||
|
node.delingLock.Lock()
|
||||||
|
q5.AppendSlice(&node.delingHandlers, h)
|
||||||
|
node.delingLock.Unlock()
|
||||||
}
|
}
|
||||||
return true
|
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{}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user