Do not use defer, notify gTomb before closing goroutines. Explicitly.

This commit is contained in:
eleksir
2023-11-12 10:36:08 +03:00
parent 31490b0922
commit 40c574faf7

7
lib.go
View File

@@ -413,11 +413,10 @@ func joinMuc(room string) {
// probeServerLiveness проверяет живость соединения с сервером. Для многих серверов обязательная штука, без которой // probeServerLiveness проверяет живость соединения с сервером. Для многих серверов обязательная штука, без которой
// они выкидывают клиента через некоторое время неактивности. // они выкидывают клиента через некоторое время неактивности.
func probeServerLiveness() { //nolint:gocognit func probeServerLiveness() { //nolint:gocognit
defer gTomb.Done()
for { for {
select { select {
case <-gTomb.Dying(): case <-gTomb.Dying():
gTomb.Done()
return return
default: default:
@@ -525,6 +524,7 @@ func probeMUCLiveness() { //nolint:gocognit
for { for {
select { select {
case <-gTomb.Dying(): case <-gTomb.Dying():
gTomb.Done()
return return
default: default:
@@ -591,11 +591,10 @@ func probeMUCLiveness() { //nolint:gocognit
// RotateStatus периодически изменяет статус бота в MUC-е согласно настройкам из кофига. // RotateStatus периодически изменяет статус бота в MUC-е согласно настройкам из кофига.
func RotateStatus(room string) { func RotateStatus(room string) {
defer gTomb.Done()
for { for {
select { select {
case <-gTomb.Dying(): case <-gTomb.Dying():
gTomb.Done()
return return
default: default: