(q *autodrainingInboundQueue)
| 88 | } |
| 89 | |
| 90 | func (device *Device) flushInboundQueue(q *autodrainingInboundQueue) { |
| 91 | for { |
| 92 | select { |
| 93 | case elemsContainer := <-q.c: |
| 94 | elemsContainer.Lock() |
| 95 | for _, elem := range elemsContainer.elems { |
| 96 | device.PutMessageBuffer(elem.buffer) |
| 97 | device.PutInboundElement(elem) |
| 98 | } |
| 99 | device.PutInboundElementsContainer(elemsContainer) |
| 100 | default: |
| 101 | return |
| 102 | } |
| 103 | } |
| 104 | } |
| 105 | |
| 106 | type autodrainingOutboundQueue struct { |
| 107 | c chan *QueueOutboundElementsContainer |
no test coverage detected