@@ -468,22 +468,22 @@ package actor BuildSystemManager: QueueBasedMessageHandler {
468
468
} else {
469
469
nil
470
470
}
471
- self . cachedSourceKitOptions. clear { cacheKey in
471
+ self . cachedSourceKitOptions. clear ( isolation : self ) { cacheKey in
472
472
guard let updatedTargets else {
473
473
// All targets might have changed
474
474
return true
475
475
}
476
476
return updatedTargets. contains ( cacheKey. target)
477
477
}
478
- self . cachedBuildTargets. clearAll ( )
479
- self . cachedTargetSources. clear { cacheKey in
478
+ self . cachedBuildTargets. clearAll ( isolation : self )
479
+ self . cachedTargetSources. clear ( isolation : self ) { cacheKey in
480
480
guard let updatedTargets else {
481
481
// All targets might have changed
482
482
return true
483
483
}
484
484
return !updatedTargets. intersection ( cacheKey. targets) . isEmpty
485
485
}
486
- self . cachedSourceFilesAndDirectories. clearAll ( )
486
+ self . cachedSourceFilesAndDirectories. clearAll ( isolation : self )
487
487
488
488
await delegate? . buildTargetsChanged ( notification. changes)
489
489
await delegate? . fileBuildSettingsChanged ( Set ( watchedFiles. keys) )
@@ -680,7 +680,7 @@ package actor BuildSystemManager: QueueBasedMessageHandler {
680
680
// For now, this should be fine because all build systems return
681
681
// very quickly from `settings(for:language:)`.
682
682
// https://github.com/apple/sourcekit-lsp/issues/1181
683
- let response = try await cachedSourceKitOptions. get ( request) { request in
683
+ let response = try await cachedSourceKitOptions. get ( request, isolation : self ) { request in
684
684
try await buildSystemAdapter. send ( request)
685
685
}
686
686
guard let response else {
@@ -873,7 +873,7 @@ package actor BuildSystemManager: QueueBasedMessageHandler {
873
873
}
874
874
875
875
let request = WorkspaceBuildTargetsRequest ( )
876
- let result = try await cachedBuildTargets. get ( request) { request in
876
+ let result = try await cachedBuildTargets. get ( request, isolation : self ) { request in
877
877
let buildTargets = try await buildSystemAdapter. send ( request) . targets
878
878
let ( depths, dependents) = await self . targetDepthsAndDependents ( for: buildTargets)
879
879
var result : [ BuildTargetIdentifier : BuildTargetInfo ] = [ : ]
@@ -917,7 +917,7 @@ package actor BuildSystemManager: QueueBasedMessageHandler {
917
917
918
918
// If we have a cached request for a superset of the targets, serve the result from that cache entry.
919
919
let fromSuperset = await orLog ( " Getting source files from superset request " ) {
920
- try await cachedTargetSources. get { request in
920
+ try await cachedTargetSources. get ( isolation : self ) { request in
921
921
targets. isSubset ( of: request. targets)
922
922
} transform: { response in
923
923
return BuildTargetSourcesResponse ( items: response. items. filter { targets. contains ( $0. target) } )
@@ -928,7 +928,7 @@ package actor BuildSystemManager: QueueBasedMessageHandler {
928
928
}
929
929
930
930
let request = BuildTargetSourcesRequest ( targets: targets. sorted { $0. uri. stringValue < $1. uri. stringValue } )
931
- let response = try await cachedTargetSources. get ( request) { request in
931
+ let response = try await cachedTargetSources. get ( request, isolation : self ) { request in
932
932
try await buildSystemAdapter. send ( request)
933
933
}
934
934
return response. items
@@ -959,7 +959,7 @@ package actor BuildSystemManager: QueueBasedMessageHandler {
959
959
sourcesItems: sourcesItems
960
960
)
961
961
962
- return try await cachedSourceFilesAndDirectories. get ( key) { key in
962
+ return try await cachedSourceFilesAndDirectories. get ( key, isolation : self ) { key in
963
963
var files : [ DocumentURI : SourceFileInfo ] = [ : ]
964
964
var directories : [ DocumentURI : SourceFileInfo ] = [ : ]
965
965
for sourcesItem in key. sourcesItems {
0 commit comments