(op T)
| 116 | } |
| 117 | |
| 118 | func (oq *opsQueueBase[T]) Enqueue(op T) { |
| 119 | oq.lock.Lock() |
| 120 | defer oq.lock.Unlock() |
| 121 | |
| 122 | if oq.isStopped { |
| 123 | return |
| 124 | } |
| 125 | |
| 126 | oq.ops.PushBack(op) |
| 127 | if oq.ops.Len() == 1 { |
| 128 | select { |
| 129 | case oq.wake <- struct{}{}: |
| 130 | default: |
| 131 | } |
| 132 | } |
| 133 | } |
| 134 | |
| 135 | func (oq *opsQueueBase[T]) process() { |
| 136 | defer close(oq.doneChan) |