@@ -32,6 +32,10 @@ final class XPCListenerDelegate: NSObject, NSXPCListenerDelegate, @unchecked Sen
3232 logger. info ( " active connection dead " )
3333self ? . setActiveConnection ( nil )
3434}
35+ newConnection. interruptionHandler= { [ weak self] in
36+ logger. debug ( " connection interrupted " )
37+ self ? . setActiveConnection ( nil )
38+ }
3539 logger. info ( " new active connection " )
3640setActiveConnection ( newConnection)
3741
@@ -47,10 +51,14 @@ else {
4751fatalError ( " Missing NEMachServiceName in Info.plist " )
4852}
4953
54+ logger. debug ( " listening on machServiceName: \( serviceName) " )
55+
5056let 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+ }
5462
5563autoreleasepool {
5664NEProvider . startSystemExtensionMode ( )