From 1daee237e913756a21fa9161eb7fdcd86230cc6c Mon Sep 17 00:00:00 2001 From: Vincent Coubard Date: Wed, 23 Sep 2020 11:02:00 +0100 Subject: [PATCH] BLE: Queue address resolution in event queue to avoid synchronous execution Otherwise when no IRK are available, the process will execute synchronously, calling the callback before the return of the function. --- .../FEATURE_BLE/source/generic/PrivateAddressController.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/connectivity/FEATURE_BLE/source/generic/PrivateAddressController.cpp b/connectivity/FEATURE_BLE/source/generic/PrivateAddressController.cpp index 1a9b938c92..9c8057d819 100644 --- a/connectivity/FEATURE_BLE/source/generic/PrivateAddressController.cpp +++ b/connectivity/FEATURE_BLE/source/generic/PrivateAddressController.cpp @@ -541,7 +541,10 @@ ble_error_t PrivateAddressController::queue_resolve_address(const address_t &pee return BLE_ERROR_NO_MEM; } - queue_privacy_control_block(cb); + _event_queue.post([this, cb] { + queue_privacy_control_block(cb); + }); + return BLE_ERROR_NONE; }