pcm-coordinator/api/internal/logic/fifo/queue.go

32 lines
430 B
Go

package fifo
import (
"sync"
)
type Queue struct {
DataList []*IData
mutex sync.Mutex
ResourceType string
}
func (q *Queue) Push(data IData) {
q.mutex.Lock()
defer q.mutex.Unlock()
q.DataList = append(q.DataList, &data)
}
func (q *Queue) Pop() IData {
q.mutex.Lock()
defer q.mutex.Unlock()
if len(q.DataList) <= 0 {
return nil
}
var data = q.DataList[0]
q.DataList = q.DataList[1:]
return data
}