From 846d721dfd0cde953f2e9304d6ef50110de050eb Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 16 May 2018 22:20:15 +0200 Subject: Finer-grained start-stop synchronization --- receive.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'receive.go') diff --git a/receive.go b/receive.go index 77062fa..aa96057 100644 --- a/receive.go +++ b/receive.go @@ -124,9 +124,11 @@ func (device *Device) RoutineReceiveIncoming(IP int, bind Bind) { logDebug := device.log.Debug defer func() { logDebug.Println("Routine: receive incoming IPv" + strconv.Itoa(IP) + " - stopped") + device.state.stopping.Done() }() logDebug.Println("Routine: receive incoming IPv" + strconv.Itoa(IP) + " - starting") + device.state.starting.Done() // receive datagrams until conn is closed @@ -257,6 +259,7 @@ func (device *Device) RoutineDecryption() { device.state.stopping.Done() }() logDebug.Println("Routine: decryption worker - started") + device.state.starting.Done() for { select { @@ -324,6 +327,7 @@ func (device *Device) RoutineHandshake() { }() logDebug.Println("Routine: handshake worker - started") + device.state.starting.Done() var elem QueueHandshakeElement var ok bool -- cgit v1.2.3-59-g8ed1b