Fixes an edge case which leads to deadlock in ShortcutService
ShortcutService uses two levels of synchronization lock, one on the
service-level, another on package-level. To prevent deadlock, we made an
implicit rule that a thread can never acquire service-level lock if they
were holding onto package-level lock.
An edge case emerges when we ran into "what a terrible failure",
service-level lock was acquired to increase wtf counter and capture
stack traces, regardless of the implicit rule mentioned above.
This CL solves the deadlock by using a separate lock in wtf.
Bug: 243880581
Test: manual
Change-Id: I136ed4018b07ae17591207c5c855e9d34082ae77
1 file changed