It is no longer necessary, as of
454de6f3e64abd2a7bf9201579cd92eea5280996
(device: use channel close to shut down and drain decryption channel).
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
cpus := runtime.NumCPU()
device.state.stopping.Wait()
for i := 0; i < cpus; i++ {
- device.state.stopping.Add(2) // decryption and handshake
go device.RoutineEncryption()
go device.RoutineDecryption()
+ device.state.stopping.Add(1) // handshake
go device.RoutineHandshake()
}
func (device *Device) RoutineDecryption() {
var nonce [chacha20poly1305.NonceSize]byte
- defer func() {
- device.log.Verbosef("Routine: decryption worker - stopped")
- device.state.stopping.Done()
- }()
+
+ defer device.log.Verbosef("Routine: decryption worker - stopped")
device.log.Verbosef("Routine: decryption worker - started")
for elem := range device.queue.decryption.c {