From 14efa4cbba97ec13a3c869217d89087a998977a7 Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Tue, 16 Dec 2025 06:26:43 -0800 Subject: [PATCH] Remove discovery queue --- .../Bluetooth Low Energy/BLETransport.swift | 50 +++++++------------ 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/Meshtastic/Accessory/Transports/Bluetooth Low Energy/BLETransport.swift b/Meshtastic/Accessory/Transports/Bluetooth Low Energy/BLETransport.swift index 12c9e33c..aa1a32d4 100644 --- a/Meshtastic/Accessory/Transports/Bluetooth Low Energy/BLETransport.swift +++ b/Meshtastic/Accessory/Transports/Bluetooth Low Energy/BLETransport.swift @@ -164,39 +164,27 @@ class BLETransport: Transport { } } - private let peripheralsQueue = DispatchQueue(label: "com.meshtastic.peripheralAccess", qos: .default) - func didDiscover(peripheral: CBPeripheral, rssi: NSNumber) { - guard !restoreInProgress else { return } - - // Use the queue to ensure thread-safe access to the dictionary - peripheralsQueue.async { - let id = peripheral.identifier - let isNew = self.discoveredPeripherals[id] == nil - - // Update the dictionary - if isNew { - self.discoveredPeripherals[id] = (peripheral, Date()) - } else { - self.discoveredPeripherals[id]?.lastSeen = Date() - } - - let device = Device(id: id, - name: peripheral.name ?? "Unknown", - transportType: .ble, - identifier: id.uuidString, - rssi: rssi.intValue) - - // Safely yield results - if isNew { - Logger.transport.debug("🛜 [BLE] Did Discover new device: \(peripheral.name ?? "Unknown", privacy: .public) (\(peripheral.identifier, privacy: .public))") - self.discoveredDeviceContinuation?.yield(.deviceFound(device)) - } else { - let rssiVal = rssi.intValue - let deviceId = id - self.discoveredDeviceContinuation?.yield(.deviceReportedRssi(deviceId, rssiVal)) - } + + let id = peripheral.identifier + let isNew = discoveredPeripherals[id] == nil + if isNew { + discoveredPeripherals[id] = (peripheral, Date()) + } + let device = Device(id: id, + name: peripheral.name ?? "Unknown", + transportType: .ble, + identifier: id.uuidString, + rssi: rssi.intValue) + if isNew { + Logger.transport.debug("🛜 [BLE] Did Discover new device: \(peripheral.name ?? "Unknown", privacy: .public) (\(peripheral.identifier, privacy: .public))") + discoveredDeviceContinuation?.yield(.deviceFound(device)) + } else { + let rssiVal = rssi.intValue + let deviceId = id + discoveredPeripherals[id]?.lastSeen = Date() + discoveredDeviceContinuation?.yield(.deviceReportedRssi(deviceId, rssiVal)) } }