Add thread to check for lock contention.
Using the foreground thread will block the foreground thread when there is lock contention. Some of the lock checks are guarding code which is writing to disk for instance. Test: manual Change-Id: I431c5c34984c7f58cfe4f4127071521811edefb8
This commit is contained in:
@@ -390,11 +390,16 @@ public class Watchdog {
|
||||
// potentially hold longer running operations with no guarantees about the timeliness
|
||||
// of operations there.
|
||||
//
|
||||
// The shared foreground thread is the main checker. It is where we
|
||||
// will also dispatch monitor checks and do other work.
|
||||
mMonitorChecker = new HandlerChecker(FgThread.getHandler(),
|
||||
"foreground thread");
|
||||
// Use a custom thread to check monitors to avoid lock contention from impacted other
|
||||
// threads.
|
||||
ServiceThread t = new ServiceThread("watchdog.monitor",
|
||||
android.os.Process.THREAD_PRIORITY_DEFAULT, true /*allowIo*/);
|
||||
t.start();
|
||||
mMonitorChecker = new HandlerChecker(new Handler(t.getLooper()), "monitor thread");
|
||||
mHandlerCheckers.add(withDefaultTimeout(mMonitorChecker));
|
||||
|
||||
mHandlerCheckers.add(withDefaultTimeout(
|
||||
new HandlerChecker(FgThread.getHandler(), "foreground thread")));
|
||||
// Add checker for main thread. We only do a quick check since there
|
||||
// can be UI running on the thread.
|
||||
mHandlerCheckers.add(withDefaultTimeout(
|
||||
|
||||
Reference in New Issue
Block a user