in src/Covi/Features/BluetoothTracing/DeviceManager/Internal/DefaultDeviceManager.cs [174:201]
public void HandleDeviceDisconnected(DeviceDescriptor deviceDescriptor, Action<DeviceDescriptor> onNext = null)
{
if (_discoveredDevices.TryGetValue(deviceDescriptor.Identifier, out var existingDevice))
{
try
{
Monitor.Enter(deviceDescriptor.ProcessingLock);
try
{
_logger.LogDebug($"DeviceManager - Device disconnected. id: {deviceDescriptor.Identifier}.");
// Clean up context as it may reference some native objects
existingDevice.Context = null;
existingDevice.Processing = false;
}
finally
{
Monitor.Exit(deviceDescriptor.ProcessingLock);
}
onNext?.Invoke(deviceDescriptor);
}
catch (Exception ex)
{
_logger.LogError(ex, $"DeviceManager - Device disconnected - failed. id: {existingDevice.Identifier}.");
}
}
}