Skip to content

Conversation

@dmtrKovalenko
Copy link

@dmtrKovalenkodmtrKovalenko commented May 24, 2024

closes#387

In Core Bluetooth when the device is locked or suspended and it is not applicable for background Bluetooth access the manager will create an event for state change and after will change the manager state to powerOff. Currently, it is not tracked at all which
leads to the forever stuck unresolved futures while the connection to peripheral is still held.

An additional problem I faced that there is no way to manually kill the
event loop of the corebluetooth from outside so the
CoreBluetoothInternal::drop is never called because it is always
living in the stalled thread.

In this change, I added an API to access the manager state and exited
the event loop when if the manager turned off.

@dmtrKovalenkodmtrKovalenkoforce-pushed the fix/core-bluetooth-stuck-forevert branch 2 times, most recently from 6eab2c5 to 60d00caCompareMay 24, 2024 11:22
@qwandorqwandor changed the base branch from master to devMay 24, 2024 11:22
closesdeviceplug#387 In Core Bluetooth when the device is not applicable for background bluetooth manager will create an event for state change. And then change the manager state to power off. Currently, it is not tracked at all which leads to the forever stuck unresolved issues while the connection to peripheral is still held. An additional problem I faced that there is no way to manually kill the event loop of the corebluetooth from outside so the `CoreBluetoothInternal::drop` is never called because it is always living in the stalled thread. In this change, I added an API to access the manager state and exited the event loop when if the manager turned off.
@dmtrKovalenkodmtrKovalenkoforce-pushed the fix/core-bluetooth-stuck-forevert branch from 60d00ca to a0635d7CompareMay 24, 2024 11:31
qdot
qdot approved these changes Oct 5, 2024
@qdot
Copy link
Contributor

qdot commented Dec 21, 2024

Ok, well, should've merged this before the corebluetooth API change. Patch looks fine but I need to go back and see what the conflicts are and if this is still valid given the event loop changes made during the API change.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@dmtrKovalenko@qdot