From 74b6b141f06d6d617dc3e58e742c99fac7f2ee75 Mon Sep 17 00:00:00 2001 From: shoopea Date: Wed, 31 Jul 2019 14:54:20 +0800 Subject: [PATCH] client revamping race condition --- workers.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/workers.go b/workers.go index a40c43a..840589f 100644 --- a/workers.go +++ b/workers.go @@ -571,6 +571,7 @@ func MQTidyKeepAliveWorker() { t := time.Now() muxClients.Lock() for id, clt := range clients { + clt.Mux.Lock() if clt.Active && clt.HeartBeat.Add(3*KeepAliveHeartBeatSeconds*time.Second).Before(time.Now()) { msgs, err := clt.MQ.Channel.QueuePurge(clt.MQ.Queue.Name, false) logOnError(err, "MQTidyKeepAliveWorker : Channel.QueuePurge()") @@ -592,6 +593,7 @@ func MQTidyKeepAliveWorker() { TGCmdQueue <- cmd clt.Active = false } + clt.Mux.Unlock() } muxClients.Unlock() time.Sleep(time.Until(t.Add(time.Second)))