diff --git a/submodules/TelegramCore/Sources/Utils/AutomaticCacheEviction.swift b/submodules/TelegramCore/Sources/Utils/AutomaticCacheEviction.swift index 269344c8b6..02c414460d 100644 --- a/submodules/TelegramCore/Sources/Utils/AutomaticCacheEviction.swift +++ b/submodules/TelegramCore/Sources/Utils/AutomaticCacheEviction.swift @@ -105,9 +105,17 @@ final class AutomaticCacheEvictionContext { |> mapToSignal { channelCategoryMapping -> Signal in var signals: Signal = .complete() - var matchingPeers = 0 + let listSignal = Signal { subscriber in + for peerId in peerIds { + subscriber.putNext(peerId) + } + + subscriber.putCompletion() + + return EmptyDisposable + } - for peerId in peerIds { + signals = listSignal |> mapToQueue { peerId -> Signal in let timeout: Int32 if let value = settings.exceptions.first(where: { $0.key == peerId }) { timeout = value.value @@ -127,15 +135,13 @@ final class AutomaticCacheEvictionContext { } if timeout == Int32.max { - continue + return .complete() } - matchingPeers += 1 - let minPeerTimestamp = Int32(CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970) - timeout //let minPeerTimestamp = Int32(CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970) - signals = signals |> then(mediaBox.storageBox.all(peerId: peerId) + return mediaBox.storageBox.all(peerId: peerId) |> mapToSignal { peerResourceIds -> Signal in return Signal { subscriber in var isCancelled = false @@ -185,11 +191,9 @@ final class AutomaticCacheEvictionContext { isCancelled = true } } - }) + } } - Logger.shared.log("AutomaticCacheEviction", "have \(matchingPeers) peers with data") - return signals } }).start()