Skip to content

Commit 5fe143f

Browse files
authored
Mark completion callbacks as Sendable (#8712)
Many of the completion callbacks used in the legacy sync versions of async functions were not marked as Sendable. This produced a warning when they were provided to `DispatchQueue.asyncResult`, which expects a Sendable callback.
1 parent f54a325 commit 5fe143f

File tree

6 files changed

+15
-15
lines changed

6 files changed

+15
-15
lines changed

Sources/PackageGraph/PackageContainer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ public protocol PackageContainerProvider {
204204
updateStrategy: ContainerUpdateStrategy,
205205
observabilityScope: ObservabilityScope,
206206
on queue: DispatchQueue,
207-
completion: @escaping (Result<PackageContainer, Error>) -> Void
207+
completion: @escaping @Sendable (Result<PackageContainer, Error>) -> Void
208208
)
209209
}
210210

Sources/PackageRegistry/ChecksumTOFU.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ struct PackageVersionChecksumTOFU {
7676
timeout: DispatchTimeInterval?,
7777
observabilityScope: ObservabilityScope,
7878
callbackQueue: DispatchQueue,
79-
completion: @escaping (Result<Void, Error>) -> Void
79+
completion: @escaping @Sendable (Result<Void, Error>) -> Void
8080
) {
8181
callbackQueue.asyncResult(completion) {
8282
try await self.validateSourceArchive(

Sources/PackageRegistry/RegistryClient.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ public final class RegistryClient: AsyncCancellable {
217217
timeout: DispatchTimeInterval? = .none,
218218
observabilityScope: ObservabilityScope,
219219
callbackQueue: DispatchQueue,
220-
completion: @escaping (Result<PackageMetadata, Error>) -> Void
220+
completion: @escaping @Sendable (Result<PackageMetadata, Error>) -> Void
221221
) {
222222
callbackQueue.asyncResult(completion) {
223223
try await self.getPackageMetadata(
@@ -377,7 +377,7 @@ public final class RegistryClient: AsyncCancellable {
377377
fileSystem: FileSystem,
378378
observabilityScope: ObservabilityScope,
379379
callbackQueue: DispatchQueue,
380-
completion: @escaping (Result<PackageVersionMetadata, Error>) -> Void
380+
completion: @escaping @Sendable (Result<PackageVersionMetadata, Error>) -> Void
381381
) {
382382
callbackQueue.asyncResult(completion) {
383383
try await self.getPackageVersionMetadata(
@@ -620,7 +620,7 @@ public final class RegistryClient: AsyncCancellable {
620620
timeout: DispatchTimeInterval? = .none,
621621
observabilityScope: ObservabilityScope,
622622
callbackQueue: DispatchQueue,
623-
completion: @escaping (Result<[String: (toolsVersion: ToolsVersion, content: String?)], Error>) -> Void
623+
completion: @escaping @Sendable (Result<[String: (toolsVersion: ToolsVersion, content: String?)], Error>) -> Void
624624
) {
625625
callbackQueue.asyncResult(completion) {
626626
try await self.getAvailableManifests(
@@ -775,7 +775,7 @@ public final class RegistryClient: AsyncCancellable {
775775
timeout: DispatchTimeInterval? = .none,
776776
observabilityScope: ObservabilityScope,
777777
callbackQueue: DispatchQueue,
778-
completion: @escaping (Result<String, Error>) -> Void
778+
completion: @escaping @Sendable (Result<String, Error>) -> Void
779779
) {
780780
callbackQueue.asyncResult(completion) {
781781
try await self.getManifestContent(
@@ -997,7 +997,7 @@ public final class RegistryClient: AsyncCancellable {
997997
fileSystem: FileSystem,
998998
observabilityScope: ObservabilityScope,
999999
callbackQueue: DispatchQueue,
1000-
completion: @escaping (Result<Void, Error>) -> Void
1000+
completion: @escaping @Sendable (Result<Void, Error>) -> Void
10011001
) {
10021002
callbackQueue.asyncResult(completion) {
10031003
try await self.downloadSourceArchive(
@@ -1084,7 +1084,7 @@ public final class RegistryClient: AsyncCancellable {
10841084
timeout: DispatchTimeInterval? = .none,
10851085
observabilityScope: ObservabilityScope,
10861086
callbackQueue: DispatchQueue,
1087-
completion: @escaping (Result<Set<PackageIdentity>, Error>) -> Void
1087+
completion: @escaping @Sendable (Result<Set<PackageIdentity>, Error>) -> Void
10881088
) {
10891089
callbackQueue.asyncResult(completion) {
10901090
try await self.lookupIdentities(
@@ -1133,7 +1133,7 @@ public final class RegistryClient: AsyncCancellable {
11331133
timeout: DispatchTimeInterval? = .none,
11341134
observabilityScope: ObservabilityScope,
11351135
callbackQueue: DispatchQueue,
1136-
completion: @escaping (Result<Void, Error>) -> Void
1136+
completion: @escaping @Sendable (Result<Void, Error>) -> Void
11371137
) {
11381138
callbackQueue.asyncResult(completion) {
11391139
try await self.login(
@@ -1158,7 +1158,7 @@ public final class RegistryClient: AsyncCancellable {
11581158
fileSystem: FileSystem,
11591159
observabilityScope: ObservabilityScope,
11601160
callbackQueue: DispatchQueue,
1161-
completion: @escaping (Result<PublishResult, Error>) -> Void
1161+
completion: @escaping @Sendable (Result<PublishResult, Error>) -> Void
11621162
) {
11631163
callbackQueue.asyncResult(completion) {
11641164
try await self.publish(
@@ -1342,7 +1342,7 @@ public final class RegistryClient: AsyncCancellable {
13421342
timeout: DispatchTimeInterval? = .none,
13431343
observabilityScope: ObservabilityScope,
13441344
callbackQueue: DispatchQueue,
1345-
completion: @escaping (Result<AvailabilityStatus, Error>) -> Void
1345+
completion: @escaping @Sendable (Result<AvailabilityStatus, Error>) -> Void
13461346
) {
13471347
callbackQueue.asyncResult(completion) {
13481348
try await self.checkAvailability(

Sources/PackageRegistry/RegistryDownloadsManager.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public class RegistryDownloadsManager: AsyncCancellable {
128128
observabilityScope: ObservabilityScope,
129129
delegateQueue: DispatchQueue,
130130
callbackQueue: DispatchQueue,
131-
completion: @escaping (Result<Basics.AbsolutePath, Error>) -> Void
131+
completion: @escaping @Sendable (Result<Basics.AbsolutePath, Error>) -> Void
132132
) {
133133
callbackQueue.asyncResult(completion) {
134134
try await self.lookup(

Sources/PackageRegistry/SigningEntityTOFU.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ struct PackageSigningEntityTOFU {
8383
version: Version,
8484
signingEntity: SigningEntity?,
8585
observabilityScope: ObservabilityScope,
86-
completion: @escaping (Result<Void, Error>) -> Void
86+
completion: @escaping @Sendable (Result<Void, Error>) -> Void
8787
) {
8888
DispatchQueue.sharedConcurrent.asyncResult(completion) {
8989
try await self.validate(

Sources/Workspace/Workspace.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,7 +1077,7 @@ extension Workspace {
10771077
public func loadRootManifests(
10781078
packages: [AbsolutePath],
10791079
observabilityScope: ObservabilityScope,
1080-
completion: @escaping (Result<[AbsolutePath: Manifest], Error>) -> Void
1080+
completion: @escaping @Sendable (Result<[AbsolutePath: Manifest], Error>) -> Void
10811081
) {
10821082
DispatchQueue.sharedConcurrent.asyncResult(completion) {
10831083
try await self.loadRootManifests(
@@ -1266,7 +1266,7 @@ extension Workspace {
12661266
with identity: PackageIdentity,
12671267
packageGraph: ModulesGraph,
12681268
observabilityScope: ObservabilityScope,
1269-
completion: @escaping (Result<Package, Error>) -> Void
1269+
completion: @escaping @Sendable (Result<Package, Error>) -> Void
12701270
) {
12711271
DispatchQueue.sharedConcurrent.asyncResult(completion) {
12721272
try await self.loadPackage(

0 commit comments

Comments
 (0)