diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-05-05 06:00:38 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-05-05 06:00:38 +0200 |
commit | a46401bbb151d8f1e662dc16b612426352138c1e (patch) | |
tree | 4fa4b0ac6777c8fca2c300bbae1323056bb5e47e /receive.go | |
parent | 09a9bc289990e3f377a331626b0102283d6f83f4 (diff) |
More robust solution to close deadlock
Diffstat (limited to 'receive.go')
-rw-r--r-- | receive.go | 21 |
1 files changed, 2 insertions, 19 deletions
@@ -238,17 +238,7 @@ func (device *Device) RoutineDecryption() { logDebug := device.log.Debug defer func() { - for { - select { - case elem, ok := <-device.queue.decryption: - if ok { - elem.Drop() - } - default: - goto out - } - } - out: + device.state.stopping.Done() logDebug.Println("Routine: decryption worker - stopped") }() logDebug.Println("Routine: decryption worker - started") @@ -314,14 +304,7 @@ func (device *Device) RoutineHandshake() { logDebug := device.log.Debug defer func() { - for { - select { - case <-device.queue.handshake: - default: - goto out - } - } - out: + device.state.stopping.Done() logDebug.Println("Routine: handshake worker - stopped") }() |