From: qydysky Date: Tue, 17 Nov 2020 22:55:21 +0000 (+0800) Subject: 92 X-Git-Tag: v0.3.0~4 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=b27dd91d56afd16165553eb89aa8228bd3ae4b92;p=part%2F.git 92 --- diff --git a/msgq/Msgq.go b/msgq/Msgq.go index bfdddc1..0f0761b 100644 --- a/msgq/Msgq.go +++ b/msgq/Msgq.go @@ -5,8 +5,6 @@ type msgq struct { men chan bool } -type cancle int - func New() (*msgq) { l := new(msgq) (*l).o = make(chan interface{}) @@ -24,15 +22,7 @@ func (m *msgq) Push(msg interface{}) { } } -func (m *msgq) Pull(cancleId int) (o interface{}) { +func (m *msgq) Pull() (o interface{}) { m.men <- true - for { - o = <- m.o - if v,ok := o.(cancle);!ok || int(v) != cancleId {break} - } - return + return <- m.o } - -func (m *msgq) Cancle(cancleId int) { - m.Push(cancle(cancleId)) -} \ No newline at end of file diff --git a/msgq/Msgq_test.go b/msgq/Msgq_test.go index 7c7a4d9..83868b7 100644 --- a/msgq/Msgq_test.go +++ b/msgq/Msgq_test.go @@ -8,20 +8,13 @@ import ( func Test_msgq(t *testing.T) { mq := New() go func(){ - for mq.Pull(0).(string) == `mmm` {;} + for mq.Pull().(string) == `mmm` {;} t.Error(`0`) - }() + }() go func(){ - for { - o := mq.Pull(1) - if o.(string) == `mmm` || o == nil {continue} - break - } - t.Error(`1`) + for mq.Pull().(string) == `mmm` {;} + t.Error(`0`) }() p.Sys().Timeoutf(1) mq.Push(`mmm`) - p.Sys().Timeoutf(1) - mq.Cancle(1) - mq.Push(`mmm`) }