Loading services/java/com/android/server/Watchdog.java +11 −8 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ public class Watchdog extends Thread { AlarmManagerService mAlarm; ActivityManagerService mActivity; boolean mCompleted; boolean mForceKillSystem; Monitor mCurrentMonitor; int mPhonePid; Loading Loading @@ -135,7 +134,9 @@ public class Watchdog extends Thread { final int size = mMonitors.size(); for (int i = 0 ; i < size ; i++) { synchronized (Watchdog.this) { mCurrentMonitor = mMonitors.get(i); } mCurrentMonitor.monitor(); } Loading Loading @@ -388,6 +389,8 @@ public class Watchdog extends Thread { mCompleted = false; mHandler.sendEmptyMessage(MONITOR); final String name; synchronized (this) { long timeout = TIME_TO_WAIT; Loading @@ -396,16 +399,16 @@ public class Watchdog extends Thread { // to timeout on is asleep as well and won't have a chance to run, causing a false // positive on when to kill things. long start = SystemClock.uptimeMillis(); while (timeout > 0 && !mForceKillSystem) { while (timeout > 0) { try { wait(timeout); // notifyAll() is called when mForceKillSystem is set wait(timeout); } catch (InterruptedException e) { Log.wtf(TAG, e); } timeout = TIME_TO_WAIT - (SystemClock.uptimeMillis() - start); } if (mCompleted && !mForceKillSystem) { if (mCompleted) { // The monitors have returned. waitedHalf = false; continue; Loading @@ -421,14 +424,14 @@ public class Watchdog extends Thread { waitedHalf = true; continue; } name = (mCurrentMonitor != null) ? mCurrentMonitor.getClass().getName() : "null"; } // If we got here, that means that the system is most likely hung. // First collect stack traces from all threads of the system process. // Then kill this process so that the system will restart. final String name = (mCurrentMonitor != null) ? mCurrentMonitor.getClass().getName() : "null"; EventLog.writeEvent(EventLogTags.WATCHDOG, name); ArrayList<Integer> pids = new ArrayList<Integer>(); Loading Loading
services/java/com/android/server/Watchdog.java +11 −8 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ public class Watchdog extends Thread { AlarmManagerService mAlarm; ActivityManagerService mActivity; boolean mCompleted; boolean mForceKillSystem; Monitor mCurrentMonitor; int mPhonePid; Loading Loading @@ -135,7 +134,9 @@ public class Watchdog extends Thread { final int size = mMonitors.size(); for (int i = 0 ; i < size ; i++) { synchronized (Watchdog.this) { mCurrentMonitor = mMonitors.get(i); } mCurrentMonitor.monitor(); } Loading Loading @@ -388,6 +389,8 @@ public class Watchdog extends Thread { mCompleted = false; mHandler.sendEmptyMessage(MONITOR); final String name; synchronized (this) { long timeout = TIME_TO_WAIT; Loading @@ -396,16 +399,16 @@ public class Watchdog extends Thread { // to timeout on is asleep as well and won't have a chance to run, causing a false // positive on when to kill things. long start = SystemClock.uptimeMillis(); while (timeout > 0 && !mForceKillSystem) { while (timeout > 0) { try { wait(timeout); // notifyAll() is called when mForceKillSystem is set wait(timeout); } catch (InterruptedException e) { Log.wtf(TAG, e); } timeout = TIME_TO_WAIT - (SystemClock.uptimeMillis() - start); } if (mCompleted && !mForceKillSystem) { if (mCompleted) { // The monitors have returned. waitedHalf = false; continue; Loading @@ -421,14 +424,14 @@ public class Watchdog extends Thread { waitedHalf = true; continue; } name = (mCurrentMonitor != null) ? mCurrentMonitor.getClass().getName() : "null"; } // If we got here, that means that the system is most likely hung. // First collect stack traces from all threads of the system process. // Then kill this process so that the system will restart. final String name = (mCurrentMonitor != null) ? mCurrentMonitor.getClass().getName() : "null"; EventLog.writeEvent(EventLogTags.WATCHDOG, name); ArrayList<Integer> pids = new ArrayList<Integer>(); Loading