Loading framework/java/android/bluetooth/BluetoothAdapter.java +16 −3 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ import java.util.UUID; import java.util.WeakHashMap; import java.util.concurrent.Executor; import java.util.concurrent.TimeoutException; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; /** Loading Loading @@ -962,8 +963,12 @@ public final class BluetoothAdapter { BluetoothAdapter(IBluetoothManager managerService, AttributionSource attributionSource) { mManagerService = Objects.requireNonNull(managerService); mAttributionSource = Objects.requireNonNull(attributionSource); synchronized (mServiceLock.writeLock()) { Lock l = mServiceLock.writeLock(); l.lock(); try { mService = getBluetoothService(mManagerCallback); } finally { l.unlock(); } mLeScanClients = new HashMap<LeScanCallback, ScanCallback>(); mToken = new Binder(DESCRIPTOR); Loading Loading @@ -3859,8 +3864,12 @@ public final class BluetoothAdapter { private final IBluetoothManagerCallback mManagerCallback = new IBluetoothManagerCallback.Stub() { public void onBluetoothServiceUp(IBluetooth bluetoothService) { synchronized (mServiceLock.writeLock()) { Lock l = mServiceLock.writeLock(); l.lock(); try { mService = bluetoothService; } finally { l.unlock(); } synchronized (mMetadataListeners) { mMetadataListeners.forEach((device, pair) -> { Loading Loading @@ -3894,7 +3903,9 @@ public final class BluetoothAdapter { } public void onBluetoothServiceDown() { synchronized (mServiceLock.writeLock()) { Lock l = mServiceLock.writeLock(); l.lock(); try { mService = null; if (mLeScanClients != null) { mLeScanClients.clear(); Loading @@ -3905,6 +3916,8 @@ public final class BluetoothAdapter { if (mBluetoothLeScanner != null) { mBluetoothLeScanner.cleanup(); } } finally { l.unlock(); } } Loading Loading
framework/java/android/bluetooth/BluetoothAdapter.java +16 −3 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ import java.util.UUID; import java.util.WeakHashMap; import java.util.concurrent.Executor; import java.util.concurrent.TimeoutException; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; /** Loading Loading @@ -962,8 +963,12 @@ public final class BluetoothAdapter { BluetoothAdapter(IBluetoothManager managerService, AttributionSource attributionSource) { mManagerService = Objects.requireNonNull(managerService); mAttributionSource = Objects.requireNonNull(attributionSource); synchronized (mServiceLock.writeLock()) { Lock l = mServiceLock.writeLock(); l.lock(); try { mService = getBluetoothService(mManagerCallback); } finally { l.unlock(); } mLeScanClients = new HashMap<LeScanCallback, ScanCallback>(); mToken = new Binder(DESCRIPTOR); Loading Loading @@ -3859,8 +3864,12 @@ public final class BluetoothAdapter { private final IBluetoothManagerCallback mManagerCallback = new IBluetoothManagerCallback.Stub() { public void onBluetoothServiceUp(IBluetooth bluetoothService) { synchronized (mServiceLock.writeLock()) { Lock l = mServiceLock.writeLock(); l.lock(); try { mService = bluetoothService; } finally { l.unlock(); } synchronized (mMetadataListeners) { mMetadataListeners.forEach((device, pair) -> { Loading Loading @@ -3894,7 +3903,9 @@ public final class BluetoothAdapter { } public void onBluetoothServiceDown() { synchronized (mServiceLock.writeLock()) { Lock l = mServiceLock.writeLock(); l.lock(); try { mService = null; if (mLeScanClients != null) { mLeScanClients.clear(); Loading @@ -3905,6 +3916,8 @@ public final class BluetoothAdapter { if (mBluetoothLeScanner != null) { mBluetoothLeScanner.cleanup(); } } finally { l.unlock(); } } Loading