@@ -7,7 +7,6 @@ public enum XPCServiceActor {
77 public static let shared = TheActor ( )
88}
99
10- @XPCServiceActor
1110class XPCService {
1211 enum Kind {
1312 case machService( identifier: String )
@@ -18,17 +17,20 @@ class XPCService {
1817 let interface : NSXPCInterface
1918 let logger : Logger
2019 weak var delegate : XPCServiceDelegate ?
20+
21+ @XPCServiceActor
2122 private var isInvalidated = false
2223
24+ @XPCServiceActor
2325 private lazy var _connection : InvalidatingConnection ? = buildConnection ( )
2426
27+ @XPCServiceActor
2528 var connection : NSXPCConnection ? {
2629 if isInvalidated { _connection = nil }
2730 if _connection == nil { rebuildConnection ( ) }
2831 return _connection? . connection
2932 }
3033
31- nonisolated
3234 init (
3335 kind: Kind ,
3436 interface: NSXPCInterface ,
@@ -41,7 +43,9 @@ class XPCService {
4143 self . delegate = delegate
4244 }
4345
46+ @XPCServiceActor
4447 private func buildConnection( ) -> InvalidatingConnection {
48+ logger. info ( " Rebuilding connection " )
4549 let connection = switch kind {
4650 case let . machService( name) :
4751 NSXPCConnection ( machServiceName: name)
@@ -66,10 +70,12 @@ class XPCService {
6670 return . init( connection)
6771 }
6872
73+ @XPCServiceActor
6974 private func markAsInvalidated( ) {
7075 isInvalidated = true
7176 }
7277
78+ @XPCServiceActor
7379 private func rebuildConnection( ) {
7480 _connection = buildConnection ( )
7581 }
0 commit comments