mirror of
https://github.com/immich-app/immich
synced 2025-11-14 17:36:12 +00:00
tweaks
This commit is contained in:
parent
188dcbf7d0
commit
9ccd98d871
1 changed files with 7 additions and 2 deletions
|
|
@ -17,7 +17,7 @@ class AssetResolver {
|
||||||
|
|
||||||
private static var batchTimer: DispatchWorkItem?
|
private static var batchTimer: DispatchWorkItem?
|
||||||
private static let batchLock = NSLock()
|
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 = {
|
private static let fetchOptions = {
|
||||||
let fetchOptions = PHFetchOptions()
|
let fetchOptions = PHFetchOptions()
|
||||||
|
|
@ -35,6 +35,7 @@ class AssetResolver {
|
||||||
requestQueue.async {
|
requestQueue.async {
|
||||||
if (request.isCancelled) {
|
if (request.isCancelled) {
|
||||||
request.completion(nil)
|
request.completion(nil)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if let cachedAsset = assetCache.object(forKey: request.assetId as NSString) {
|
if let cachedAsset = assetCache.object(forKey: request.assetId as NSString) {
|
||||||
|
|
@ -55,13 +56,17 @@ class AssetResolver {
|
||||||
let timer = DispatchWorkItem(block: processBatch)
|
let timer = DispatchWorkItem(block: processBatch)
|
||||||
batchTimer = timer
|
batchTimer = timer
|
||||||
batchLock.unlock()
|
batchLock.unlock()
|
||||||
|
|
||||||
processingQueue.asyncAfter(deadline: .now() + batchTimeout, execute: timer)
|
processingQueue.asyncAfter(deadline: .now() + batchTimeout, execute: timer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static func processBatch() {
|
private static func processBatch() {
|
||||||
batchLock.lock()
|
batchLock.lock()
|
||||||
|
if assetRequests.isEmpty {
|
||||||
|
batchLock.unlock()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var completionMap = [String: [(PHAsset?) -> Void]]()
|
var completionMap = [String: [(PHAsset?) -> Void]]()
|
||||||
var activeAssetIds = [String]()
|
var activeAssetIds = [String]()
|
||||||
completionMap.reserveCapacity(assetRequests.count)
|
completionMap.reserveCapacity(assetRequests.count)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue