@@ -32,6 +32,10 @@ final class XPCListenerDelegate: NSObject, NSXPCListenerDelegate, @unchecked Sen
32
32
logger. info ( " active connection dead " )
33
33
self ? . setActiveConnection ( nil )
34
34
}
35
+ newConnection. interruptionHandler= { [ weak self] in
36
+ logger. debug ( " connection interrupted " )
37
+ self ? . setActiveConnection ( nil )
38
+ }
35
39
logger. info ( " new active connection " )
36
40
setActiveConnection ( newConnection)
37
41
@@ -47,10 +51,14 @@ else {
47
51
fatalError ( " Missing NEMachServiceName in Info.plist " )
48
52
}
49
53
54
+ logger. debug ( " listening on machServiceName: \( serviceName) " )
55
+
50
56
let globalXPCListenerDelegate = XPCListenerDelegate ( )
51
- let xpcListener = NSXPCListener ( machServiceName: serviceName)
52
- xpcListener. delegate= globalXPCListenerDelegate
53
- xpcListener. resume ( )
57
+ withExtendedLifetime ( globalXPCListenerDelegate) {
58
+ let xpcListener = NSXPCListener ( machServiceName: serviceName)
59
+ xpcListener. delegate= globalXPCListenerDelegate
60
+ xpcListener. resume ( )
61
+ }
54
62
55
63
autoreleasepool {
56
64
NEProvider . startSystemExtensionMode ( )