12345678910111213141516171819202122232425 |
- package util
- import "sync"
- type SerialQueue struct {
- items [][]byte
- lock sync.Mutex
- }
- func (q *SerialQueue) Enqueue(item []byte) {
- q.lock.Lock()
- defer q.lock.Unlock()
- q.items = append(q.items, item)
- }
- func (q *SerialQueue) Dequeue() ([]byte, bool) {
- q.lock.Lock()
- defer q.lock.Unlock()
- if len(q.items) == 0 {
- return nil, false
- }
- item := q.items[0]
- q.items = q.items[1:]
- return item, true
- }
|