From f5ba6391e74899a727356be9dd38b81e3e9b57f3 Mon Sep 17 00:00:00 2001 From: Mrs4s <1844812067@qq.com> Date: Wed, 20 Jan 2021 22:49:40 +0800 Subject: [PATCH] fix lock. --- client/sync.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/client/sync.go b/client/sync.go index d40a60d8..dd1b07a4 100644 --- a/client/sync.go +++ b/client/sync.go @@ -6,6 +6,7 @@ import ( "github.com/Mrs4s/MiraiGo/protocol/packets" "github.com/golang/protobuf/proto" "github.com/pkg/errors" + "sync" "time" ) @@ -196,6 +197,8 @@ func decodePushParamPacket(c *QQClient, _ uint16, payload []byte) (interface{}, return nil, nil } +var loginNotifyLock sync.Mutex + // StatSvc.SvcReqMSFLoginNotify func decodeLoginNotifyPacket(c *QQClient, _ uint16, payload []byte) (interface{}, error) { request := &jce.RequestPacket{} @@ -205,6 +208,8 @@ func decodeLoginNotifyPacket(c *QQClient, _ uint16, payload []byte) (interface{} reader := jce.NewJceReader(data.Map["SvcReqMSFLoginNotify"]["QQService.SvcReqMSFLoginNotify"][1:]) notify := &jce.SvcReqMSFLoginNotify{} notify.ReadFrom(reader) + loginNotifyLock.Lock() + defer loginNotifyLock.Unlock() if notify.Status == 1 { found := false for _, oc := range c.OnlineClients {