Allow device exports during size scans
This commit is contained in:
parent
3a97ae0d53
commit
e0886ee50f
@ -227,23 +227,6 @@ enum SourceScanExecutor {
|
|||||||
}
|
}
|
||||||
host.persistSourceIfAvailable(withID: sourceID)
|
host.persistSourceIfAvailable(withID: sourceID)
|
||||||
|
|
||||||
if source.origin.kind == .connectedDevice {
|
|
||||||
try await finishConnectedDeviceScan(
|
|
||||||
sourceID: sourceID,
|
|
||||||
source: source,
|
|
||||||
host: host,
|
|
||||||
sourceAccessMethod: sourceAccessMethod,
|
|
||||||
notificationService: notificationService,
|
|
||||||
index: index,
|
|
||||||
discoveredCount: discoveredCount,
|
|
||||||
scanStartTime: scanStartTime,
|
|
||||||
scanContextURL: scanContextURL,
|
|
||||||
performanceContext: performanceContext,
|
|
||||||
minimumVisibleScanDuration: minimumVisibleScanDuration
|
|
||||||
)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
let sizeQueue = EnrichmentWorkQueue()
|
let sizeQueue = EnrichmentWorkQueue()
|
||||||
sizeWorkerTasks = (0..<resolvedSizeWorkerCount).map { _ in
|
sizeWorkerTasks = (0..<resolvedSizeWorkerCount).map { _ in
|
||||||
Task.detached(priority: .utility) {
|
Task.detached(priority: .utility) {
|
||||||
@ -322,52 +305,6 @@ enum SourceScanExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static func finishConnectedDeviceScan(
|
|
||||||
sourceID: URL,
|
|
||||||
source: MinecraftSource,
|
|
||||||
host: SourceScanSessionHosting,
|
|
||||||
sourceAccessMethod: SourceAccessMethod,
|
|
||||||
notificationService: ScanNotificationServicing,
|
|
||||||
index: SourceIndexActor,
|
|
||||||
discoveredCount: Int,
|
|
||||||
scanStartTime: Date,
|
|
||||||
scanContextURL: URL,
|
|
||||||
performanceContext: String,
|
|
||||||
minimumVisibleScanDuration: TimeInterval
|
|
||||||
) async throws {
|
|
||||||
let sizeStageStartTime = Date()
|
|
||||||
let sizeSeedItems = await index.currentItems()
|
|
||||||
let sizedItems = await sourceAccessMethod.loadSizeAssets(
|
|
||||||
for: sizeSeedItems.filter { !$0.sizeLoaded },
|
|
||||||
in: source
|
|
||||||
)
|
|
||||||
for sizedItem in sizedItems {
|
|
||||||
if let snapshot = await index.applySizedItem(sizedItem) {
|
|
||||||
host.applySnapshot(snapshot, to: sourceID)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
host.logScanStage(
|
|
||||||
"Size",
|
|
||||||
elapsed: Date().timeIntervalSince(sizeStageStartTime),
|
|
||||||
context: performanceContext,
|
|
||||||
itemCount: discoveredCount
|
|
||||||
)
|
|
||||||
|
|
||||||
try await finishScan(
|
|
||||||
sourceID: sourceID,
|
|
||||||
source: source,
|
|
||||||
host: host,
|
|
||||||
notificationService: notificationService,
|
|
||||||
index: index,
|
|
||||||
discoveredCount: discoveredCount,
|
|
||||||
scanStartTime: scanStartTime,
|
|
||||||
scanContextURL: scanContextURL,
|
|
||||||
performanceContext: performanceContext,
|
|
||||||
minimumVisibleScanDuration: minimumVisibleScanDuration
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
private static func finishScan(
|
private static func finishScan(
|
||||||
sourceID: URL,
|
sourceID: URL,
|
||||||
source: MinecraftSource,
|
source: MinecraftSource,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user