diff options
Diffstat (limited to 'send.go')
-rw-r--r-- | send.go | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -320,13 +320,16 @@ func (device *Device) RoutineEncryption() { */ func (peer *Peer) RoutineSequentialSender() { - defer peer.routines.stopping.Done() - device := peer.device logDebug := device.log.Debug logDebug.Println("Routine, sequential sender, started for", peer.String()) + defer func() { + peer.routines.stopping.Done() + logDebug.Println(peer.String(), ": Routine, Sequential sender, Stopped") + }() + peer.routines.starting.Done() for { @@ -337,7 +340,12 @@ func (peer *Peer) RoutineSequentialSender() { "Routine, sequential sender, stopped for", peer.String()) return - case elem := <-peer.queue.outbound: + case elem, ok := <-peer.queue.outbound: + + if !ok { + return + } + elem.mutex.Lock() if elem.IsDropped() { continue |