Fix Watchdog HeartbeatHandler to run on correct thread
The HeartbeatHandler for the System Server Watchdog has been running on the wrong thread due to a race condition in initialization. It's designed to run on ServerThread, so that it can catch lockups in the main looper of the System Server. It has been running on ActivityManagerThread instead, so it does not detect lockups on the ServerThread as it should. ActivityManagerService is calling Watchdog.getInstance() before ServerThread calls Watchdog.getInstance().init(), so the handler is being bound to the ActivityManagerThread instead of the ServerThread. Explicitly bind HeartbeatHandler to ServerThread, so that the Watchdog catches lockups on this critical thread. Change-Id: Iccb184ac3adb817feb86ed4ee0e50e443bf74636
Loading
Please register or sign in to comment