From e3149fa098785ea66b395f18b92cb96c3a2028a5 Mon Sep 17 00:00:00 2001 From: jack <212554440+jackjackbits@users.noreply.github.com> Date: Tue, 14 Oct 2025 12:20:39 +0200 Subject: [PATCH] Process incoming fragments on message queue (#804) Co-authored-by: jack --- bitchat/Services/BLEService.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bitchat/Services/BLEService.swift b/bitchat/Services/BLEService.swift index ad669f30..9a105985 100644 --- a/bitchat/Services/BLEService.swift +++ b/bitchat/Services/BLEService.swift @@ -2200,6 +2200,16 @@ extension BLEService { } private func handleFragment(_ packet: BitchatPacket, from peerID: PeerID) { + if DispatchQueue.getSpecific(key: messageQueueKey) != nil { + _handleFragment(packet, from: peerID) + } else { + messageQueue.async(flags: .barrier) { [weak self] in + self?._handleFragment(packet, from: peerID) + } + } + } + + private func _handleFragment(_ packet: BitchatPacket, from peerID: PeerID) { // Don't process our own fragments if peerID == myPeerID { return