mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 23:25:19 +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 {
|
||||
case .string(let text):
|
||||
// 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 }
|
||||
await MainActor.run {
|
||||
self?.handleParsedMessage(parsed, from: relayUrl)
|
||||
NostrRelayManager.shared.handleParsedMessage(parsed, from: relayUrl)
|
||||
}
|
||||
}
|
||||
case .data(let data):
|
||||
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 }
|
||||
await MainActor.run {
|
||||
self?.handleParsedMessage(parsed, from: relayUrl)
|
||||
NostrRelayManager.shared.handleParsedMessage(parsed, from: relayUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user