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