File tree Expand file tree Collapse file tree 2 files changed +12
-4
lines changed
Tool/Sources/CodeiumService Expand file tree Collapse file tree 2 files changed +12
-4
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,11 @@ import Logger
55import Preferences
66import Workspace
77
8+ @globalActor public enum CodeiumActor {
9+ public actor TheActor { }
10+ public static let shared = TheActor ( )
11+ }
12+
813public final class CodeiumExtension : BuiltinExtension {
914 public var suggestionServiceId : Preferences . BuiltInSuggestionFeatureProvider { . codeium }
1015
@@ -119,7 +124,7 @@ final class ServiceLocator {
119124 guard let workspace = workspacePool. workspaces [ workspace. workspaceURL] ,
120125 let plugin = workspace. plugin ( for: CodeiumWorkspacePlugin . self)
121126 else { return nil }
122- return plugin. codeiumService
127+ return await plugin. codeiumService
123128 }
124129}
125130
Original file line number Diff line number Diff line change @@ -3,7 +3,8 @@ import Logger
33import Workspace
44
55public final class CodeiumWorkspacePlugin : WorkspacePlugin {
6- var _codeiumService : CodeiumService ?
6+ private var _codeiumService : CodeiumService ?
7+ @CodeiumActor
78 var codeiumService : CodeiumService ? {
89 if let service = _codeiumService { return service }
910 do {
@@ -15,11 +16,12 @@ public final class CodeiumWorkspacePlugin: WorkspacePlugin {
1516 }
1617
1718 deinit {
18- if let codeiumService {
19- codeiumService . terminate ( )
19+ if let _codeiumService {
20+ _codeiumService . terminate ( )
2021 }
2122 }
2223
24+ @CodeiumActor
2325 func createCodeiumService( ) throws -> CodeiumService {
2426 let newService = try CodeiumService (
2527 projectRootURL: projectRootURL,
@@ -32,6 +34,7 @@ public final class CodeiumWorkspacePlugin: WorkspacePlugin {
3234 return newService
3335 }
3436
37+ @CodeiumActor
3538 func finishLaunchingService( ) {
3639 guard let workspace, let _codeiumService else { return }
3740 Task {
You can’t perform that action at this time.
0 commit comments