Skip to content

Commit cfa8843

Browse files
committed
fix instance tracking
1 parent e338898 commit cfa8843

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

Sources/CrossmintClient/SwiftUI/View+NonCustodialSigner.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,25 @@ import Logger
33
import SwiftUI
44
import Wallet
55

6-
@MainActor var instanceTrackers: [String: [InstanceTracker]] = [:]
6+
@MainActor var instanceTrackers: [String: Int] = [:]
77

88
final class InstanceTracker: ObservableObject, Sendable {
99
let instance: String
1010
init(name: String) {
1111
self.instance = name
12+
Logger.sdk.debug("new instance of: \(name)")
1213
Task { @MainActor in
13-
instanceTrackers[instance, default: []].append(self)
14-
if instanceTrackers[instance, default: []].count > 1 {
14+
instanceTrackers[instance, default: 0] += 1
15+
if instanceTrackers[instance, default: 0] > 1 {
1516
Logger.sdk.error("More than one instance of \(instance) created at a time. Behaviour is undefined.")
1617
}
1718
}
1819
}
1920

2021
deinit {
22+
Logger.sdk.debug("destroying instance of: \(instance)")
2123
Task { @MainActor [instance] in
22-
instanceTrackers[instance]?.popLast()
24+
instanceTrackers[instance, default: 0] -= 1
2325
}
2426
}
2527
}

0 commit comments

Comments
 (0)