diff options
Diffstat (limited to 'peer.go')
-rw-r--r-- | peer.go | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -231,20 +231,21 @@ func (peer *Peer) Stop() { // prevent simultaneous start/stop operations - peer.routines.mutex.Lock() - defer peer.routines.mutex.Unlock() - if !peer.isRunning.Swap(false) { return } + peer.routines.starting.Wait() + + peer.routines.mutex.Lock() + defer peer.routines.mutex.Unlock() + peer.device.log.Debug.Println(peer, ": Stopping...") peer.timersStop() // stop & wait for ongoing peer routines - peer.routines.starting.Wait() close(peer.routines.stop) peer.routines.stopping.Wait() |