Example #1
0
// 投递线程间消息
func (this *ThreadMsgPool) PostMsg(tid int32, a event.IEvent) bool {
	if !a.IsHeader() || a.IsEmpty() {
		return false
	}
	if tid >= jiekou.Tid_master && tid < jiekou.Tid_last {
		this.lock[tid].Lock()
		defer this.lock[tid].Unlock()

		header := this.header[tid]

		a_pre := a.GetPreTimer()
		a_next := a.GetNextTimer()

		a.SetPreTimer(a)
		a.SetNextTimer(a)

		header.GetPreTimer().SetNextTimer(a_pre)
		a_pre.SetPreTimer(header.GetPreTimer())

		header.SetPreTimer(a_next)
		a_next.SetNextTimer(header)

		return true
	}
	return false
}