diff --git a/submodules/TelegramCore/Sources/Account/Account.swift b/submodules/TelegramCore/Sources/Account/Account.swift index e5f385165a..51a5d7bd18 100644 --- a/submodules/TelegramCore/Sources/Account/Account.swift +++ b/submodules/TelegramCore/Sources/Account/Account.swift @@ -1524,7 +1524,10 @@ public func standaloneStateManager( |> map { network -> AccountStateManager? in Logger.shared.log("StandaloneStateManager", "received network") - postbox.mediaBox.fetchResource = { resource, intervals, parameters -> Signal in + postbox.mediaBox.fetchResource = { [weak postbox] resource, intervals, parameters -> Signal in + guard let postbox else { + return .never() + } if let result = auxiliaryMethods.fetchResource( postbox, resource, diff --git a/submodules/TelegramCore/Sources/Network/NetworkStatsContext.swift b/submodules/TelegramCore/Sources/Network/NetworkStatsContext.swift index 21b656fed5..9b23e2aafa 100644 --- a/submodules/TelegramCore/Sources/Network/NetworkStatsContext.swift +++ b/submodules/TelegramCore/Sources/Network/NetworkStatsContext.swift @@ -50,11 +50,11 @@ final class NetworkStatsContext { private final class Impl { let queue: Queue - let postbox: Postbox + weak var postbox: Postbox? var averageTargetStats: [TargetKey: AverageStats] = [:] - init(queue: Queue, postbox: Postbox) { + init(queue: Queue, postbox: Postbox?) { self.queue = queue self.postbox = postbox } @@ -86,12 +86,14 @@ final class NetworkStatsContext { var removeKeys: [TargetKey] = [] for (targetKey, averageStats) in self.averageTargetStats { if averageStats.count >= 1000 || averageStats.size >= 4 * 1024 * 1024 { - addAppLogEvent(postbox: self.postbox, type: "download", data: .dictionary([ - "n": .number(Double(targetKey.networkType.rawValue)), - "d": .number(Double(targetKey.datacenterId)), - "b": .number(averageStats.networkBps / Double(averageStats.count)), - "nd": .number(averageStats.networkDelay / Double(averageStats.count)) - ])) + if let postbox = self.postbox { + addAppLogEvent(postbox: postbox, type: "download", data: .dictionary([ + "n": .number(Double(targetKey.networkType.rawValue)), + "d": .number(Double(targetKey.datacenterId)), + "b": .number(averageStats.networkBps / Double(averageStats.count)), + "nd": .number(averageStats.networkDelay / Double(averageStats.count)) + ])) + } removeKeys.append(targetKey) } } @@ -109,7 +111,7 @@ final class NetworkStatsContext { init(postbox: Postbox) { let queue = NetworkStatsContext.sharedQueue self.queue = queue - self.impl = QueueLocalObject(queue: queue, generate: { + self.impl = QueueLocalObject(queue: queue, generate: { [weak postbox] in return Impl(queue: queue, postbox: postbox) }) }