From 9ccd98d871a543e25ca46099fce4f1069d4b0fdc Mon Sep 17 00:00:00 2001 From: mertalev <101130780+mertalev@users.noreply.github.com> Date: Thu, 11 Sep 2025 14:41:01 -0400 Subject: [PATCH] tweaks --- mobile/ios/Runner/Resolvers/Assets/AssetResolver.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mobile/ios/Runner/Resolvers/Assets/AssetResolver.swift b/mobile/ios/Runner/Resolvers/Assets/AssetResolver.swift index 480f6088e3..3f53f1db8c 100644 --- a/mobile/ios/Runner/Resolvers/Assets/AssetResolver.swift +++ b/mobile/ios/Runner/Resolvers/Assets/AssetResolver.swift @@ -17,7 +17,7 @@ class AssetResolver { private static var batchTimer: DispatchWorkItem? private static let batchLock = NSLock() - private static let batchTimeout: TimeInterval = 0.001 // 1ms + private static let batchTimeout: TimeInterval = 0.00025 // 250μs private static let fetchOptions = { let fetchOptions = PHFetchOptions() @@ -35,6 +35,7 @@ class AssetResolver { requestQueue.async { if (request.isCancelled) { request.completion(nil) + return } if let cachedAsset = assetCache.object(forKey: request.assetId as NSString) { @@ -55,13 +56,17 @@ class AssetResolver { let timer = DispatchWorkItem(block: processBatch) batchTimer = timer batchLock.unlock() - processingQueue.asyncAfter(deadline: .now() + batchTimeout, execute: timer) } } private static func processBatch() { batchLock.lock() + if assetRequests.isEmpty { + batchLock.unlock() + return + } + var completionMap = [String: [(PHAsset?) -> Void]]() var activeAssetIds = [String]() completionMap.reserveCapacity(assetRequests.count)