Skip to content

Commit 605e832

Browse files
[CAS] Fix task continuation misue when CAS error happens
Do not resume with returning after resume with throwing when there is an error returned from CAS service.
1 parent 20926ef commit 605e832

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

Sources/SwiftDriver/SwiftScan/SwiftScanCAS.swift

+6-3
Original file line numberDiff line numberDiff line change
@@ -344,8 +344,9 @@ extension CachedOutput {
344344
} else {
345345
obj.continuation.resume(throwing: DependencyScanningError.casError("unknown output loading error"))
346346
}
347+
} else {
348+
obj.continuation.resume(returning: success)
347349
}
348-
obj.continuation.resume(returning: success)
349350
}
350351

351352
return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<Bool, Swift.Error>) in
@@ -378,8 +379,9 @@ extension SwiftScanCAS {
378379
} else {
379380
obj.continuation.resume(throwing: DependencyScanningError.casError("unknown cache querying error"))
380381
}
382+
} else {
383+
obj.continuation.resume(returning: obj.cas.convert(compilation: comp))
381384
}
382-
obj.continuation.resume(returning: obj.cas.convert(compilation: comp))
383385
}
384386

385387
return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<CachedCompilation?, Swift.Error>) in
@@ -410,8 +412,9 @@ extension SwiftScanCAS {
410412
} else {
411413
obj.continuation.resume(throwing: DependencyScanningError.casError("unknown output loading error"))
412414
}
415+
} else {
416+
obj.continuation.resume(returning: success)
413417
}
414-
obj.continuation.resume(returning: success)
415418
}
416419

417420
return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<Bool, Swift.Error>) in

0 commit comments

Comments
 (0)