This commit is contained in:
azw 2023-08-13 12:39:23 +08:00
parent 7bffd9a638
commit aecf26a45c

32
queue.go Normal file
View File

@ -0,0 +1,32 @@
package q5
import (
"sync"
)
type Queue struct {
msgMutex sync.Mutex
msgList ListHead
WorkList ListHead
}
func (this *Queue) Init() {
this.msgList.Init(nil)
this.WorkList.Init(nil)
}
func (this *Queue) Push(node *ListHead) {
this.msgMutex.Lock()
defer this.msgMutex.Unlock()
this.msgList.AddTail(node)
}
func (this *Queue) Fetch() {
if this.WorkList.Empty() {
this.msgMutex.Lock()
defer this.msgMutex.Unlock()
if !this.msgList.Empty() {
this.msgList.ReplaceInit(&this.WorkList)
}
}
}