Remove discovery queue

This commit is contained in:
Garth Vander Houwen 2025-12-16 06:26:43 -08:00
parent 8346fb8073
commit 14efa4cbba

View file

@ -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))
}
}