[PATCH 03/12] receive, send: use AtomicBool for dropped in QueueInboundElement, QueueOutboundElement
Simon Ruderich
simon at ruderich.org
Mon Jan 1 11:52:53 CET 2018
Also remove explicit initialization which defaults to false anyway.
This removes code duplication with AtomicBool.
---
src/receive.go | 7 +++----
src/send.go | 9 ++++-----
2 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/src/receive.go b/src/receive.go
index dbd2813..2c4f191 100644
--- a/src/receive.go
+++ b/src/receive.go
@@ -20,7 +20,7 @@ type QueueHandshakeElement struct {
}
type QueueInboundElement struct {
- dropped int32
+ dropped AtomicBool
mutex sync.Mutex
buffer *[MaxMessageSize]byte
packet []byte
@@ -30,11 +30,11 @@ type QueueInboundElement struct {
}
func (elem *QueueInboundElement) Drop() {
- atomic.StoreInt32(&elem.dropped, AtomicTrue)
+ elem.dropped.Set(true)
}
func (elem *QueueInboundElement) IsDropped() bool {
- return atomic.LoadInt32(&elem.dropped) == AtomicTrue
+ return elem.dropped.Get()
}
func (device *Device) addToInboundQueue(
@@ -177,7 +177,6 @@ func (device *Device) RoutineReceiveIncoming(IP int, bind Bind) {
packet: packet,
buffer: buffer,
keyPair: keyPair,
- dropped: AtomicFalse,
endpoint: endpoint,
}
elem.mutex.Lock()
diff --git a/src/send.go b/src/send.go
index 9537f5e..163b75f 100644
--- a/src/send.go
+++ b/src/send.go
@@ -36,7 +36,7 @@ import (
*/
type QueueOutboundElement struct {
- dropped int32
+ dropped AtomicBool
mutex sync.Mutex
buffer *[MaxMessageSize]byte // slice holding the packet data
packet []byte // slice of "buffer" (always!)
@@ -58,17 +58,16 @@ func (peer *Peer) FlushNonceQueue() {
func (device *Device) NewOutboundElement() *QueueOutboundElement {
return &QueueOutboundElement{
- dropped: AtomicFalse,
buffer: device.pool.messageBuffers.Get().(*[MaxMessageSize]byte),
}
}
func (elem *QueueOutboundElement) Drop() {
- atomic.StoreInt32(&elem.dropped, AtomicTrue)
+ elem.dropped.Set(true)
}
func (elem *QueueOutboundElement) IsDropped() bool {
- return atomic.LoadInt32(&elem.dropped) == AtomicTrue
+ return elem.dropped.Get()
}
func addToOutboundQueue(
@@ -227,7 +226,7 @@ func (peer *Peer) RoutineNonce() {
elem.peer = peer
elem.nonce = atomic.AddUint64(&keyPair.sendNonce, 1) - 1
elem.keyPair = keyPair
- elem.dropped = AtomicFalse
+ elem.dropped.Set(false)
elem.mutex.Lock()
// add to parallel and sequential queue
--
2.15.1
More information about the WireGuard
mailing list