0

Kill myLoop in more obvious way

* Explicitly use .Close on any connection before exit myLoop()
* Do not use defer, notify gTomb before closing goroutines. Explicitly.
This commit is contained in:
eleksir
2023-11-12 11:07:40 +03:00
parent fd98de36c3
commit 59976f2fe8
2 changed files with 10 additions and 6 deletions

View File

@@ -128,17 +128,22 @@ func main() {
myLoop()
log.Error(gTomb.Wait())
// Если у нас wire error, то вызов .Close() повлечёт за собой ошибку, но мы вынуждены звать .Close(), чтоб
// закрыть tls контекст и почистить всё что связанно с прерванным соединением.
_ = talk.Close()
time.Sleep(time.Duration(config.Jabber.ReconnectDelay) * time.Second)
}
}
func myLoop() {
defer gTomb.Done()
for {
select {
case <-gTomb.Dying():
gTomb.Done()
return
default:
// Зададим начальное значение глобальным переменным
serverPingTimestampRx = 0