From 3f9bfc8c5daf90ff38f9d8c42c8041e7e691c824 Mon Sep 17 00:00:00 2001 From: AmarnathCJD Date: Fri, 22 Mar 2024 15:35:23 +0530 Subject: [PATCH] another approach #85 --- mtproto.go | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/mtproto.go b/mtproto.go index 2b46b84a..7ae6684c 100755 --- a/mtproto.go +++ b/mtproto.go @@ -528,24 +528,35 @@ messageTypeSwitching: } } - var badMsgResponseChannel chan tl.Object - for _, v := range m.responseChannels.Keys() { - if v == int(message.BadMsgID) { - badMsgResponseChannel, _ = m.responseChannels.Get(v) - m.responseChannels.Delete(v) - break - } - } + var respChannelsBackup *utils.SyncIntObjectChan + m.mutex.Lock() + respChannelsBackup = m.responseChannels + + m.responseChannels = utils.NewSyncIntObjectChan() + + //var badMsgResponseChannel chan tl.Object + //for _, v := range m.responseChannels.Keys() { + // if v == int(message.BadMsgID) { + // badMsgResponseChannel, _ = m.responseChannels.Get(v) + // m.responseChannels.Delete(v) + // break + // } + //} m.Reconnect(false) - m.mutex.Lock() - if badMsgResponseChannel != nil { - badMsgResponseChannel <- &errorSessionConfigsChanged{} - } + //m.mutex.Lock() + //if badMsgResponseChannel != nil { + // badMsgResponseChannel <- &errorSessionConfigsChanged{} + //} + + //for _, k := range m.responseChannels.Keys() { + // v, _ := m.responseChannels.Get(k) + // v <- &errorSessionConfigsChanged{} + //} - for _, k := range m.responseChannels.Keys() { - v, _ := m.responseChannels.Get(k) + for _, k := range respChannelsBackup.Keys() { + v, _ := respChannelsBackup.Get(k) v <- &errorSessionConfigsChanged{} }