device: refactor container locking for lock-order clarity
Device-side portion of upstream tailscale/wireguard-go e3ac4a0 (device, cmd/check-lockorder: add static analysis tool for lock ordering); the analyzer itself is not carried in this fork.
This commit is contained in:
parent
7c3a736cbe
commit
2ad9837e6c
6 changed files with 214 additions and 182 deletions
|
|
@ -97,7 +97,7 @@ func (device *Device) flushInboundQueue(q *autodrainingInboundQueue) {
|
|||
for {
|
||||
select {
|
||||
case elemsContainer := <-q.c:
|
||||
elemsContainer.Lock()
|
||||
elemsContainer.filling.Wait()
|
||||
for _, elem := range elemsContainer.elems {
|
||||
device.PutMessageBuffer(elem.buffer)
|
||||
device.PutInboundElement(elem)
|
||||
|
|
@ -136,7 +136,7 @@ func (device *Device) flushOutboundQueue(q *autodrainingOutboundQueue) {
|
|||
for {
|
||||
select {
|
||||
case elemsContainer := <-q.c:
|
||||
elemsContainer.Lock()
|
||||
elemsContainer.filling.Wait()
|
||||
for _, elem := range elemsContainer.elems {
|
||||
device.PutOutboundBuffer(elem.buffer)
|
||||
device.PutOutboundElement(elem)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue