Skip to content

Commit 22c9624

Browse files
committed
Update
1 parent 961d9f6 commit 22c9624

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

CommunicationBridge/ServiceDelegate.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ actor EventHandler {
6969
reply(endpoint)
7070
#else
7171
if await launcher.isApplicationValid {
72+
Logger.communicationBridge.info("Service app is still valid")
7273
reply(endpoint)
7374
} else {
7475
endpoint = nil

Tool/Sources/XPCShared/XPCExtensionService.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ public class XPCExtensionService {
203203

204204
extension XPCExtensionService: XPCServiceDelegate {
205205
public func connectionDidInterrupt() async {
206-
// do nothing
206+
service = nil
207207
}
208208

209209
public func connectionDidInvalidate() async {

Tool/Sources/XPCShared/XPCService.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ public enum XPCServiceActor {
77
public static let shared = TheActor()
88
}
99

10-
@XPCServiceActor
1110
class 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

Comments
 (0)