Commits


Koji Fukui authored and Henrik Baard committed 63909886b2e
Skip broadcasting to a receiver if the receiver seems to be dead If an application that has a broadcast receiver is killed during broadcasting, thread variable of ProcessRecord becomes null so that IIntentReceiver#performReceive() is called in BroadcastQueue#performReceiveLocked(). But if binder driver has not noticed the death of the application yet, it can't throw DeadObjectException. After that, binder driver notices. But it can't notify DeadObjectException to the caller because performReceive() is async call. So broadcasting keeps on waiting for finishing performReceive() until timeout. This change checks the death of the application before calling performReceive() and skips broadcasting to the receiver if the application has already died. Change-Id: Ifa02b8b1a7e7b6fd314de90fedff5b7a5326825d