From 7ee95e053c280796ecfb5533000915e7daa13f69 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Sun, 17 Jan 2021 09:40:18 -0800 Subject: device: remove QueueOutboundElement.dropped If we block when enqueuing encryption elements to the queue, then we never drop them. Signed-off-by: Josh Bleecher Snyder --- device/send.go | 23 ----------------------- 1 file changed, 23 deletions(-) (limited to 'device/send.go') diff --git a/device/send.go b/device/send.go index c9b62e6..1d27799 100644 --- a/device/send.go +++ b/device/send.go @@ -43,7 +43,6 @@ import ( */ type QueueOutboundElement struct { - dropped int32 sync.Mutex buffer *[MaxMessageSize]byte // slice holding the packet data packet []byte // slice of "buffer" (always!) @@ -54,7 +53,6 @@ type QueueOutboundElement struct { func (device *Device) NewOutboundElement() *QueueOutboundElement { elem := device.GetOutboundElement() - elem.dropped = AtomicFalse elem.buffer = device.GetMessageBuffer() elem.Mutex = sync.Mutex{} elem.nonce = 0 @@ -73,14 +71,6 @@ func (elem *QueueOutboundElement) clearPointers() { elem.peer = nil } -func (elem *QueueOutboundElement) Drop() { - atomic.StoreInt32(&elem.dropped, AtomicTrue) -} - -func (elem *QueueOutboundElement) IsDropped() bool { - return atomic.LoadInt32(&elem.dropped) == AtomicTrue -} - func addToNonceQueue(queue chan *QueueOutboundElement, elem *QueueOutboundElement, device *Device) { for { select { @@ -436,7 +426,6 @@ NextPacket: } elem.keypair = keypair - elem.dropped = AtomicFalse elem.Lock() // add to parallel and sequential queue @@ -476,15 +465,7 @@ func (device *Device) RoutineEncryption() { logDebug.Println("Routine: encryption worker - started") for elem := range device.queue.encryption.c { - - // check if dropped - - if elem.IsDropped() { - continue - } - // populate header fields - header := elem.buffer[:MessageTransportHeaderSize] fieldType := header[0:4] @@ -532,10 +513,6 @@ func (peer *Peer) RoutineSequentialSender() { for elem := range peer.queue.outbound { elem.Lock() - if elem.IsDropped() { - device.PutOutboundElement(elem) - continue - } if !peer.isRunning.Get() { // peer has been stopped; return re-usable elems to the shared pool. // This is an optimization only. It is possible for the peer to be stopped -- cgit v1.2.3-59-g8ed1b