From c4fa6adba9073ba8627bf847f1dd6572f13af88c Mon Sep 17 00:00:00 2001 From: qydysky Date: Thu, 24 Dec 2020 23:14:55 +0800 Subject: [PATCH] 96 --- msgq/Msgq.go | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/msgq/Msgq.go b/msgq/Msgq.go index f39849e..07e873e 100644 --- a/msgq/Msgq.go +++ b/msgq/Msgq.go @@ -14,23 +14,23 @@ type Msgq struct { sync.RWMutex } -type msgq_item struct { +type Msgq_item struct { data interface{} sig uint64 } -func New(want_max_data_mun int) (*msgq) { - m := new(msgq) +func New(want_max_data_mun int) (*Msgq) { + m := new(Msgq) (*m).wait_push = make(chan bool,100) (*m).data_list = list.New() (*m).max_data_mun = want_max_data_mun return m } -func (m *msgq) Push(msg interface{}) { +func (m *Msgq) Push(msg interface{}) { m.Lock() defer m.Unlock() - m.data_list.PushBack(msgq_item{ + m.data_list.PushBack(Msgq_item{ data:msg, sig:m.get_sig(), }) @@ -42,7 +42,7 @@ func (m *msgq) Push(msg interface{}) { } } -func (m *msgq) Pull(old_sig uint64) (data interface{},sig uint64) { +func (m *Msgq) Pull(old_sig uint64) (data interface{},sig uint64) { for old_sig == m.Sig() { select { case <- m.wait_push: @@ -53,42 +53,42 @@ func (m *msgq) Pull(old_sig uint64) (data interface{},sig uint64) { defer m.RUnlock() for el := m.data_list.Front();el != nil;el = el.Next() { - if old_sig < el.Value.(msgq_item).sig { - data = el.Value.(msgq_item).data - sig = el.Value.(msgq_item).sig + if old_sig < el.Value.(Msgq_item).sig { + data = el.Value.(Msgq_item).data + sig = el.Value.(Msgq_item).sig break } } return } -func (m *msgq) Sig() (sig uint64) { +func (m *Msgq) Sig() (sig uint64) { if el := m.data_list.Back();el == nil { sig = 0 } else { - sig = el.Value.(msgq_item).sig + sig = el.Value.(Msgq_item).sig } return } -func (m *msgq) get_sig() (sig uint64) { +func (m *Msgq) get_sig() (sig uint64) { m.sig += 1 return m.sig } -type msgq_tag_data struct { +type Msgq_tag_data struct { Tag string Data interface{} } -func (m *msgq) Push_tag(Tag string,Data interface{}) { - m.Push(msgq_tag_data{ +func (m *Msgq) Push_tag(Tag string,Data interface{}) { + m.Push(Msgq_tag_data{ Tag:Tag, Data:Data, }) } -func (m *msgq) Pull_tag(func_map map[string]func(interface{})(bool)) { +func (m *Msgq) Pull_tag(func_map map[string]func(interface{})(bool)) { go func(){ var ( sig = m.Sig() @@ -96,7 +96,7 @@ func (m *msgq) Pull_tag(func_map map[string]func(interface{})(bool)) { ) for { data,sig = m.Pull(sig) - if d,ok := data.(msgq_tag_data);!ok { + if d,ok := data.(Msgq_tag_data);!ok { continue } else { if f,ok := func_map[d.Tag];ok{ -- 2.39.2