resolved conflicts for merge of 485d7a31 to master
Change-Id: I058e19af8732df44457bdc614ee810a642dc25e4
This commit is contained in:
@@ -16,6 +16,9 @@
|
||||
|
||||
package com.android.server;
|
||||
|
||||
import android.app.IActivityController;
|
||||
import android.os.Binder;
|
||||
import android.os.RemoteException;
|
||||
import com.android.server.am.ActivityManagerService;
|
||||
import com.android.server.power.PowerManagerService;
|
||||
|
||||
@@ -89,6 +92,7 @@ public class Watchdog extends Thread {
|
||||
ActivityManagerService mActivity;
|
||||
|
||||
int mPhonePid;
|
||||
IActivityController mController;
|
||||
|
||||
final Calendar mCalendar = Calendar.getInstance();
|
||||
int mMinScreenOff = MEMCHECK_DEFAULT_MIN_SCREEN_OFF;
|
||||
@@ -260,6 +264,12 @@ public class Watchdog extends Thread {
|
||||
}
|
||||
}
|
||||
|
||||
public void setActivityController(IActivityController controller) {
|
||||
synchronized (this) {
|
||||
mController = controller;
|
||||
}
|
||||
}
|
||||
|
||||
public void addMonitor(Monitor monitor) {
|
||||
synchronized (this) {
|
||||
if (isAlive()) {
|
||||
@@ -549,6 +559,25 @@ public class Watchdog extends Thread {
|
||||
dropboxThread.join(2000); // wait up to 2 seconds for it to return.
|
||||
} catch (InterruptedException ignored) {}
|
||||
|
||||
IActivityController controller;
|
||||
synchronized (this) {
|
||||
controller = mController;
|
||||
}
|
||||
if (controller != null) {
|
||||
Slog.i(TAG, "Reporting stuck state to activity controller");
|
||||
try {
|
||||
Binder.setDumpDisabled("Service dumps disabled due to hung system process.");
|
||||
// 1 = keep waiting, -1 = kill system
|
||||
int res = controller.systemNotResponding(name);
|
||||
if (res >= 0) {
|
||||
Slog.i(TAG, "Activity controller requested to coninue to wait");
|
||||
waitedHalf = false;
|
||||
continue;
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
|
||||
// Only kill the process if the debugger is not attached.
|
||||
if (!Debug.isDebuggerConnected()) {
|
||||
Slog.w(TAG, "*** WATCHDOG KILLING SYSTEM PROCESS: " + name);
|
||||
|
||||
@@ -2920,6 +2920,7 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
resumeOK = mController.activityResuming(next.packageName);
|
||||
} catch (RemoteException e) {
|
||||
mController = null;
|
||||
Watchdog.getInstance().setActivityController(null);
|
||||
}
|
||||
|
||||
if (!resumeOK) {
|
||||
@@ -3413,6 +3414,7 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
if (res < 0 && app.pid != MY_PID) Process.killProcess(app.pid);
|
||||
} catch (RemoteException e) {
|
||||
mController = null;
|
||||
Watchdog.getInstance().setActivityController(null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3516,6 +3518,7 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
mController = null;
|
||||
Watchdog.getInstance().setActivityController(null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7569,6 +7572,7 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
"setActivityController()");
|
||||
synchronized (this) {
|
||||
mController = controller;
|
||||
Watchdog.getInstance().setActivityController(controller);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8932,6 +8936,7 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
mController = null;
|
||||
Watchdog.getInstance().setActivityController(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
|
||||
|
||||
import com.android.internal.os.BatteryStatsImpl;
|
||||
import com.android.internal.util.Objects;
|
||||
import com.android.server.Watchdog;
|
||||
import com.android.server.am.ActivityManagerService.ItemMatcher;
|
||||
import com.android.server.wm.AppTransition;
|
||||
import com.android.server.wm.TaskGroup;
|
||||
@@ -2498,6 +2499,7 @@ final class ActivityStack {
|
||||
resumeOK = controller.activityResuming(next.packageName);
|
||||
} catch (RemoteException e) {
|
||||
mService.mController = null;
|
||||
Watchdog.getInstance().setActivityController(null);
|
||||
}
|
||||
|
||||
if (!resumeOK) {
|
||||
@@ -3022,6 +3024,7 @@ final class ActivityStack {
|
||||
moveOK = mService.mController.activityResuming(next.packageName);
|
||||
} catch (RemoteException e) {
|
||||
mService.mController = null;
|
||||
Watchdog.getInstance().setActivityController(null);
|
||||
}
|
||||
if (!moveOK) {
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user