diff --git a/packages/reactive_ble_mobile/ios/Classes/ReactiveBle/Central.swift b/packages/reactive_ble_mobile/ios/Classes/ReactiveBle/Central.swift index 95f2f9dc..25772c5d 100644 --- a/packages/reactive_ble_mobile/ios/Classes/ReactiveBle/Central.swift +++ b/packages/reactive_ble_mobile/ios/Classes/ReactiveBle/Central.swift @@ -159,13 +159,21 @@ final class Central { guard let peripheral = try? resolve(known: peripheralID) else { return } - centralManager.cancelPeripheralConnection(peripheral) + connectRegistry.updateTask( + key: peripheralID, + action: { $0.cancel(centralManager: centralManager, peripheral: peripheral, error: nil) } + ) } func disconnectAll() { activePeripherals .values - .forEach(centralManager.cancelPeripheralConnection) + .forEach { (peripheral) in + connectRegistry.updateTask( + key: peripheral.identifier, + action: { $0.cancel(centralManager: centralManager, peripheral: peripheral, error: nil) } + ) + } } func discoverServicesWithCharacteristics(