summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBhakthavatsala Raghavendra <braghave@codeaurora.org>2014-11-11 18:54:41 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2014-11-11 19:04:03 -0800
commita588c0ef54f45d7d33f0b86c32f653c133bdeec9 (patch)
tree56cc6bb120eac63c957765270a6d6e0a9c47c11e
parent5475aebf79c70a9967206aec7bd44177faf460da (diff)
downloadandroid_packages_apps_Bluetooth-a588c0ef54f45d7d33f0b86c32f653c133bdeec9.tar.gz
android_packages_apps_Bluetooth-a588c0ef54f45d7d33f0b86c32f653c133bdeec9.tar.bz2
android_packages_apps_Bluetooth-a588c0ef54f45d7d33f0b86c32f653c133bdeec9.zip
Bluetooth: Cleanup the handler threads properly
Cleanup the handler threads in Advertisementmanager and ScanManager so that there are no resource leaks CRs-fixed: 749335 Change-Id: Ia51899f449d57c1ef68a9516b8472d1fd492572b
-rw-r--r--src/com/android/bluetooth/gatt/AdvertiseManager.java10
-rw-r--r--src/com/android/bluetooth/gatt/ScanManager.java10
2 files changed, 20 insertions, 0 deletions
diff --git a/src/com/android/bluetooth/gatt/AdvertiseManager.java b/src/com/android/bluetooth/gatt/AdvertiseManager.java
index a2c859316..6222fb534 100644
--- a/src/com/android/bluetooth/gatt/AdvertiseManager.java
+++ b/src/com/android/bluetooth/gatt/AdvertiseManager.java
@@ -87,6 +87,16 @@ class AdvertiseManager {
void cleanup() {
logd("advertise clients cleared");
mAdvertiseClients.clear();
+
+ if (mHandler != null) {
+ // Shut down the thread
+ mHandler.removeCallbacksAndMessages(null);
+ Looper looper = mHandler.getLooper();
+ if (looper != null) {
+ looper.quit();
+ }
+ mHandler = null;
+ }
}
/**
diff --git a/src/com/android/bluetooth/gatt/ScanManager.java b/src/com/android/bluetooth/gatt/ScanManager.java
index 51950c006..bbbede26d 100644
--- a/src/com/android/bluetooth/gatt/ScanManager.java
+++ b/src/com/android/bluetooth/gatt/ScanManager.java
@@ -101,6 +101,16 @@ public class ScanManager {
mRegularScanClients.clear();
mBatchClients.clear();
mScanNative.cleanup();
+
+ if (mHandler != null) {
+ // Shut down the thread
+ mHandler.removeCallbacksAndMessages(null);
+ Looper looper = mHandler.getLooper();
+ if (looper != null) {
+ looper.quit();
+ }
+ mHandler = null;
+ }
}
/**