From: qydysky Date: Tue, 17 Nov 2020 23:19:44 +0000 (+0800) Subject: 92 X-Git-Tag: v0.3.0~3 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=b989fc77f39b62cf91b4909964e8e0a2c52bbf93;p=part%2F.git 92 --- diff --git a/msgq/Msgq.go b/msgq/Msgq.go index 0f0761b..d0fdc2e 100644 --- a/msgq/Msgq.go +++ b/msgq/Msgq.go @@ -7,15 +7,19 @@ type msgq struct { func New() (*msgq) { l := new(msgq) - (*l).o = make(chan interface{}) - (*l).men = make(chan bool) + (*l).o = make(chan interface{},1e9) + (*l).men = make(chan bool,1e9) return l } func (m *msgq) Push(msg interface{}) { - if len(m.men) == 0 {return} - for <- m.men { + num := len(m.men) + for len(m.men) != 0 { + <- m.men + } + for num > 0 { m.o <- msg + num -= 1 } for len(m.o) != 0 { <- m.o