diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-01-27 18:13:53 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-01-27 18:38:27 +0100 |
commit | 1b092ce584cbee0f86f3e25b5498870c8ca96652 (patch) | |
tree | f8f7119546aafab5d48f6dd9078bfbf18a753b1a /device/receive.go | |
parent | a11dec5dc12255ee032ce730eef3c82e77c84ed2 (diff) |
device: get rid of nonce routine
This moves to a simple queue with no routine processing it, to reduce
scheduler pressure.
This splits latency in half!
benchmark old ns/op new ns/op delta
BenchmarkThroughput-16 2394 2364 -1.25%
BenchmarkLatency-16 259652 120810 -53.47%
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'device/receive.go')
-rw-r--r-- | device/receive.go | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/device/receive.go b/device/receive.go index a8e55cc..e891fd0 100644 --- a/device/receive.go +++ b/device/receive.go @@ -427,10 +427,6 @@ func (device *Device) RoutineHandshake() { peer.timersSessionDerived() peer.timersHandshakeComplete() peer.SendKeepalive() - select { - case peer.signals.newKeypairArrived <- struct{}{}: - default: - } } } } @@ -485,10 +481,7 @@ func (peer *Peer) RoutineSequentialReceiver() { // check if using new keypair if peer.ReceivedWithKeypair(elem.keypair) { peer.timersHandshakeComplete() - select { - case peer.signals.newKeypairArrived <- struct{}{}: - default: - } + peer.SendStagedPackets() } peer.keepKeyFreshReceiving() |