]> 127.0.0.1 Git - part/.git/commitdiff
92
authorqydysky <qydysky@foxmail.com>
Tue, 17 Nov 2020 22:55:21 +0000 (06:55 +0800)
committerqydysky <qydysky@foxmail.com>
Tue, 17 Nov 2020 22:55:21 +0000 (06:55 +0800)
msgq/Msgq.go
msgq/Msgq_test.go

index bfdddc1d31113b558448df021cd5807d65fc38a5..0f0761bfb438d201d9241f5049e4ac8f5937b41c 100644 (file)
@@ -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
index 7c7a4d95c34b26c7f4118c0a217eaf7866436630..83868b7933bf072eea93f439b01fabf76de72518 100644 (file)
@@ -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`)
 }