Index: device/bluetooth/bluez/bluetooth_remote_gatt_service_bluez.cc |
diff --git a/device/bluetooth/bluez/bluetooth_remote_gatt_service_bluez.cc b/device/bluetooth/bluez/bluetooth_remote_gatt_service_bluez.cc |
index 50786999f1a37aa11a18e6e7c85b933263ec2af0..a11fcd87525c416af287fa9cfe3907a9e2eea812 100644 |
--- a/device/bluetooth/bluez/bluetooth_remote_gatt_service_bluez.cc |
+++ b/device/bluetooth/bluez/bluetooth_remote_gatt_service_bluez.cc |
@@ -243,9 +243,15 @@ void BluetoothRemoteGattServiceBlueZ::GattCharacteristicPropertyChanged( |
if (property_name == properties->flags.name()) |
NotifyServiceChanged(); |
- else if (property_name == properties->value.name()) |
- GetAdapter()->NotifyGattCharacteristicValueChanged( |
- iter->second, properties->value.value()); |
+ else if (property_name == properties->value.name()) { |
+ DCHECK_GE(iter->second->num_of_characteristic_value_read_in_progress_, 0); |
+ if (iter->second->num_of_characteristic_value_read_in_progress_ > 0) { |
+ --iter->second->num_of_characteristic_value_read_in_progress_; |
+ } else { |
+ GetAdapter()->NotifyGattCharacteristicValueChanged( |
+ iter->second, properties->value.value()); |
+ } |
+ } |
} |
} // namespace bluez |