@@ -49,8 +49,8 @@ final class ContainerProvider {
49
49
}
50
50
51
51
func removeCachedContainers( for packages: [ PackageReference ] ) {
52
- packages. forEach {
53
- self . containersCache [ $0 ] = nil
52
+ for package in packages {
53
+ self . containersCache [ package ] = nil
54
54
}
55
55
}
56
56
@@ -65,25 +65,13 @@ final class ContainerProvider {
65
65
/// Get the container for the given identifier, loading it if necessary.
66
66
func getContainer(
67
67
for package : PackageReference ,
68
- availableLibraries: [ LibraryMetadata ] ,
69
68
completion: @escaping ( Result < PubGrubPackageContainer , Error > ) -> Void
70
69
) {
71
70
// Return the cached container, if available.
72
71
if let container = self . containersCache [ comparingLocation: package ] {
73
72
return completion ( . success( container) )
74
73
}
75
74
76
- if let metadata = package . matchingPrebuiltLibrary ( in: availableLibraries) {
77
- do {
78
- let prebuiltPackageContainer = try PrebuiltPackageContainer ( metadata: metadata)
79
- let pubGrubContainer = PubGrubPackageContainer ( underlying: prebuiltPackageContainer, pins: self . pins)
80
- self . containersCache [ package ] = pubGrubContainer
81
- return completion ( . success( pubGrubContainer) )
82
- } catch {
83
- return completion ( . failure( error) )
84
- }
85
- }
86
-
87
75
if let prefetchSync = self . prefetches [ package ] {
88
76
// If this container is already being prefetched, wait for that to complete
89
77
prefetchSync. notify ( queue: . sharedConcurrent) {
@@ -93,15 +81,18 @@ final class ContainerProvider {
93
81
} else {
94
82
// if prefetch failed, remove from list of prefetches and try again
95
83
self . prefetches [ package ] = nil
96
- return self . getContainer ( for: package , availableLibraries : availableLibraries , completion: completion)
84
+ return self . getContainer ( for: package , completion: completion)
97
85
}
98
86
}
99
87
} else {
100
88
// Otherwise, fetch the container from the provider
101
89
self . underlying. getContainer (
102
90
for: package ,
103
91
updateStrategy: self . skipUpdate ? . never : . always, // TODO: make this more elaborate
104
- observabilityScope: self . observabilityScope. makeChildScope ( description: " getting package container " , metadata: package . diagnosticsMetadata) ,
92
+ observabilityScope: self . observabilityScope. makeChildScope (
93
+ description: " getting package container " ,
94
+ metadata: package . diagnosticsMetadata
95
+ ) ,
105
96
on: . sharedConcurrent
106
97
) { result in
107
98
let result = result. tryMap { container -> PubGrubPackageContainer in
@@ -118,7 +109,7 @@ final class ContainerProvider {
118
109
/// Starts prefetching the given containers.
119
110
func prefetch( containers identifiers: [ PackageReference ] , availableLibraries: [ LibraryMetadata ] ) {
120
111
let filteredIdentifiers = identifiers. filter {
121
- return $0. matchingPrebuiltLibrary ( in: availableLibraries) == nil
112
+ $0. matchingPrebuiltLibrary ( in: availableLibraries) == nil
122
113
}
123
114
// Process each container.
124
115
for identifier in filteredIdentifiers {
@@ -133,13 +124,19 @@ final class ContainerProvider {
133
124
self . underlying. getContainer (
134
125
for: identifier,
135
126
updateStrategy: self . skipUpdate ? . never : . always, // TODO: make this more elaborate
136
- observabilityScope: self . observabilityScope. makeChildScope ( description: " prefetching package container " , metadata: identifier. diagnosticsMetadata) ,
127
+ observabilityScope: self . observabilityScope. makeChildScope (
128
+ description: " prefetching package container " ,
129
+ metadata: identifier. diagnosticsMetadata
130
+ ) ,
137
131
on: . sharedConcurrent
138
132
) { result in
139
133
defer { self . prefetches [ identifier] ? . leave ( ) }
140
134
// only cache positive results
141
135
if case . success( let container) = result {
142
- self . containersCache [ identifier] = PubGrubPackageContainer ( underlying: container, pins: self . pins)
136
+ self . containersCache [ identifier] = PubGrubPackageContainer (
137
+ underlying: container,
138
+ pins: self . pins
139
+ )
143
140
}
144
141
}
145
142
}
0 commit comments