mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-25 00:45:21 +00:00
Fix: Swift 6 concurrency - avoid capturing self in detached tasks; deliver parsed Nostr messages via MainActor singleton
This commit is contained in:
@@ -291,18 +291,18 @@ class NostrRelayManager: ObservableObject {
|
|||||||
switch message {
|
switch message {
|
||||||
case .string(let text):
|
case .string(let text):
|
||||||
// Parse off-main to reduce UI jank, then hop back for state updates
|
// Parse off-main to reduce UI jank, then hop back for state updates
|
||||||
Task.detached { [weak self] in
|
Task.detached(priority: .utility) {
|
||||||
guard let parsed = Self.parseInboundMessage(text) else { return }
|
guard let parsed = Self.parseInboundMessage(text) else { return }
|
||||||
await MainActor.run {
|
await MainActor.run {
|
||||||
self?.handleParsedMessage(parsed, from: relayUrl)
|
NostrRelayManager.shared.handleParsedMessage(parsed, from: relayUrl)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case .data(let data):
|
case .data(let data):
|
||||||
if let text = String(data: data, encoding: .utf8) {
|
if let text = String(data: data, encoding: .utf8) {
|
||||||
Task.detached { [weak self] in
|
Task.detached(priority: .utility) {
|
||||||
guard let parsed = Self.parseInboundMessage(text) else { return }
|
guard let parsed = Self.parseInboundMessage(text) else { return }
|
||||||
await MainActor.run {
|
await MainActor.run {
|
||||||
self?.handleParsedMessage(parsed, from: relayUrl)
|
NostrRelayManager.shared.handleParsedMessage(parsed, from: relayUrl)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user