@@ -364,40 +364,40 @@ extension Workspace {
364
364
//
365
365
// We just request the packages here, repository manager will
366
366
// automatically manage the parallelism.
367
- let group = DispatchGroup ( )
368
- for resolvedPackage in resolvedPackagesStore. resolvedPackages. values {
369
- group. enter ( )
370
- let observabilityScope = observabilityScope. makeChildScope (
371
- description: " requesting package containers " ,
372
- metadata: resolvedPackage. packageRef. diagnosticsMetadata
373
- )
367
+ await withThrowingTaskGroup ( of: Void . self) { taskGroup in
368
+ for resolvedPackage in resolvedPackagesStore. resolvedPackages. values {
369
+ let observabilityScope = observabilityScope. makeChildScope (
370
+ description: " requesting package containers " ,
371
+ metadata: resolvedPackage. packageRef. diagnosticsMetadata
372
+ )
374
373
375
- let updateStrategy : ContainerUpdateStrategy = {
376
- if self . configuration. skipDependenciesUpdates {
377
- return . never
378
- } else {
379
- switch resolvedPackage. state {
380
- case . branch( _, let revision) :
381
- return . ifNeeded( revision: revision)
382
- case . revision( let revision) :
383
- return . ifNeeded( revision: revision)
384
- case . version( _, . some( let revision) ) :
385
- return . ifNeeded( revision: revision)
386
- case . version( _, . none) :
387
- return . always
374
+ let updateStrategy : ContainerUpdateStrategy = {
375
+ if self . configuration. skipDependenciesUpdates {
376
+ return . never
377
+ } else {
378
+ switch resolvedPackage. state {
379
+ case . branch( _, let revision) :
380
+ return . ifNeeded( revision: revision)
381
+ case . revision( let revision) :
382
+ return . ifNeeded( revision: revision)
383
+ case . version( _, . some( let revision) ) :
384
+ return . ifNeeded( revision: revision)
385
+ case . version( _, . none) :
386
+ return . always
387
+ }
388
388
}
389
- }
390
- } ( )
389
+ } ( )
391
390
392
- self . packageContainerProvider. getContainer (
393
- for: resolvedPackage. packageRef,
394
- updateStrategy: updateStrategy,
395
- observabilityScope: observabilityScope,
396
- on: . sharedConcurrent,
397
- completion: { _ in group. leave ( ) }
398
- )
391
+ taskGroup. addTask {
392
+ _ = try await self . packageContainerProvider. getContainer (
393
+ for: resolvedPackage. packageRef,
394
+ updateStrategy: updateStrategy,
395
+ observabilityScope: observabilityScope,
396
+ on: . sharedConcurrent
397
+ )
398
+ }
399
+ }
399
400
}
400
- group. wait ( )
401
401
402
402
// Compute resolved packages that we need to actually clone.
403
403
//
0 commit comments