forked from JointCloud/pcm-coordinator
32 lines
430 B
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
|
|
}
|