GAP: Kill Bluetooth process in timeout cases
- In timeout cases BT process restart before complete cleanup
in lower layers results in generation of ANR.
- This patch will kill Bluetooth process in timeout
cases and handle timeouts properly.
CRs-Fixed: 2461289
Change-Id: I513e8509db5b96a494b44159587be938af54a740
diff --git a/src/com/android/bluetooth/btservice/AdapterState.java b/src/com/android/bluetooth/btservice/AdapterState.java
index 16e7633..46d8297 100644
--- a/src/com/android/bluetooth/btservice/AdapterState.java
+++ b/src/com/android/bluetooth/btservice/AdapterState.java
@@ -191,6 +191,11 @@
transitionTo(mTurningBleOnState);
break;
+ case BT_FORCEKILL_TIMEOUT:
+ errorLog("Killing the process to force a restart as part of cleanup");
+ android.os.Process.killProcess(android.os.Process.myPid());
+ break;
+
default:
infoLog("Unhandled message - " + messageString(msg.what));
return false;
@@ -217,6 +222,12 @@
transitionTo(mTurningBleOffState);
break;
+ case BT_FORCEKILL_TIMEOUT:
+ transitionTo(mOffState);
+ errorLog("Killing the process to force a restart as part of cleanup");
+ android.os.Process.killProcess(android.os.Process.myPid());
+ break;
+
default:
infoLog("Unhandled message - " + messageString(msg.what));
return false;
@@ -239,6 +250,12 @@
transitionTo(mTurningOffState);
break;
+ case BT_FORCEKILL_TIMEOUT:
+ transitionTo(mOffState);
+ errorLog("Killing the process to force a restart as part of cleanup");
+ android.os.Process.killProcess(android.os.Process.myPid());
+ break;
+
default:
infoLog("Unhandled message - " + messageString(msg.what));
return false;