diff --git a/serialtcpsrv.go b/serialtcpsrv.go index 86f1702..d7914f5 100644 --- a/serialtcpsrv.go +++ b/serialtcpsrv.go @@ -115,6 +115,9 @@ connected: writeLoopDeinitNeededChan <- true <-writeLoopDeinitFinishedChan + + <-s.clientLoopDeinitNeededChan + s.clientLoopDeinitFinishedChan <- true } func (s *serialTCPSrvStruct) loop() { @@ -124,6 +127,9 @@ func (s *serialTCPSrvStruct) loop() { s.disconnectClient() s.deinitClient() + s.clientLoopDeinitNeededChan = make(chan bool) + s.clientLoopDeinitFinishedChan = make(chan bool) + if err != nil { if err != io.EOF { reportError(err)