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:
7
lib.go
7
lib.go
@@ -218,11 +218,10 @@ func joinMuc(room string) {
|
||||
// probeServerLiveness проверяет живость соединения с сервером. Для многих серверов обязательная штука, без которой
|
||||
// они выкидывают клиента через некоторое время неактивности.
|
||||
func probeServerLiveness() { //nolint:gocognit
|
||||
defer gTomb.Done()
|
||||
|
||||
for {
|
||||
select {
|
||||
case <-gTomb.Dying():
|
||||
gTomb.Done()
|
||||
return
|
||||
|
||||
default:
|
||||
@@ -330,6 +329,7 @@ func probeMUCLiveness() { //nolint:gocognit
|
||||
for {
|
||||
select {
|
||||
case <-gTomb.Dying():
|
||||
gTomb.Done()
|
||||
return
|
||||
|
||||
default:
|
||||
@@ -394,11 +394,10 @@ func probeMUCLiveness() { //nolint:gocognit
|
||||
|
||||
// RotateStatus периодически изменяет статус бота в MUC-е согласно настройкам из кофига.
|
||||
func RotateStatus(room string) {
|
||||
defer gTomb.Done()
|
||||
|
||||
for {
|
||||
select {
|
||||
case <-gTomb.Dying():
|
||||
gTomb.Done()
|
||||
return
|
||||
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user