Skip to content

Commit 7d8d143

Browse files
committed
automatically clearing static pointer references upon interrupt
1 parent 76d0eaa commit 7d8d143

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

bindings/batteries/ChannelManagerConstructor.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
173173
self.customEventHandler = CustomEventHandler(handler: persister)
174174
self.backgroundProcessor = BackgroundProcessor(persister: self.customPersister!, event_handler: self.customEventHandler!, chain_monitor: self.chain_monitor, channel_manager: self.channelManager, peer_manager: self.peerManager, logger: self.logger)
175175
try! self.backgroundProcessor!.addAnchor(anchor: self.peerManager)
176+
try! self.backgroundProcessor!.addAnchor(anchor: persister)
177+
try! self.backgroundProcessor!.addAnchor(anchor: self.customEventHandler!)
178+
try! self.backgroundProcessor!.addAnchor(anchor: self.customPersister!)
176179

177180
}
178181

@@ -181,10 +184,20 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
181184
self.shutdown = true
182185
self.backgroundProcessor?.dangle().stop()
183186
print("stopped background processor")
187+
if let processor = self.backgroundProcessor {
188+
for currentAnchor in processor.anchors {
189+
Bindings.removeInstancePointer(instance: currentAnchor)
190+
}
191+
print("removed background processor anchors")
192+
}
184193
self.backgroundProcessor = nil
185194
print("unset background processor")
186195
}
187196

197+
deinit {
198+
print("deiniting ChannelManagerConstructor")
199+
}
200+
188201

189202
}
190203

ci/LDKSwift/Tests/LDKSwiftTests/LDKSwiftTest.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,6 @@ class LDKSwiftTest: XCTestCase {
7575

7676
channel_manager_constructor.chain_sync_completed(persister: cmPersister)
7777
channel_manager_constructor.interrupt()
78-
79-
print("final cleanup")
80-
Bindings.removeInstancePointer(instance: cmPersister)
8178
}
8279

8380
/*

0 commit comments

Comments
 (0)