From 2fe19ce54db258d8c47ff03d8335fd28c7c7ad0f Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Mon, 11 Jan 2021 17:21:16 -0800 Subject: device: remove selects from encrypt/decrypt/inbound/outbound enqueuing Block instead. Backpressure here is fine, probably preferable. This reduces code complexity. Signed-off-by: Josh Bleecher Snyder --- device/send.go | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) (limited to 'device/send.go') diff --git a/device/send.go b/device/send.go index 55df4b3..c9b62e6 100644 --- a/device/send.go +++ b/device/send.go @@ -97,23 +97,6 @@ func addToNonceQueue(queue chan *QueueOutboundElement, elem *QueueOutboundElemen } } -func addToOutboundAndEncryptionQueues(outboundQueue chan *QueueOutboundElement, encryptionQueue chan *QueueOutboundElement, elem *QueueOutboundElement) { - select { - case outboundQueue <- elem: - select { - case encryptionQueue <- elem: - return - default: - elem.Drop() - elem.peer.device.PutMessageBuffer(elem.buffer) - elem.Unlock() - } - default: - elem.peer.device.PutMessageBuffer(elem.buffer) - elem.peer.device.PutOutboundElement(elem) - } -} - /* Queues a keepalive if no packets are queued for peer */ func (peer *Peer) SendKeepalive() bool { @@ -457,7 +440,8 @@ NextPacket: elem.Lock() // add to parallel and sequential queue - addToOutboundAndEncryptionQueues(peer.queue.outbound, device.queue.encryption.c, elem) + peer.queue.outbound <- elem + device.queue.encryption.c <- elem } } } -- cgit v1.2.3-59-g8ed1b