summaryrefslogtreecommitdiffhomepage
path: root/device
diff options
context:
space:
mode:
Diffstat (limited to 'device')
-rw-r--r--device/device.go2
-rw-r--r--device/receive.go6
2 files changed, 3 insertions, 5 deletions
diff --git a/device/device.go b/device/device.go
index d860ed3..a7838b5 100644
--- a/device/device.go
+++ b/device/device.go
@@ -340,9 +340,9 @@ func NewDevice(tunDevice tun.Device, logger *Logger) *Device {
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()
}
diff --git a/device/receive.go b/device/receive.go
index 0b70137..3b0f36c 100644
--- a/device/receive.go
+++ b/device/receive.go
@@ -210,10 +210,8 @@ func (device *Device) RoutineReceiveIncoming(IP int, bind conn.Bind) {
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 {