Fix an assert failure in art::DumpNativeStack().
When ThreadList::SuspendAll() times out (and aborts), UnsafeLogFatalForThreadSuspendAllTimeout() will call art::DumpNativeStack() but it does not have the mutator lock shared-locked (as it failed while trying to exclusive-lock the mutator lock) and the AssertSharedHeld() on the mutator lock fails. It's an assert failure nested in an time-out abort. This change avoids it by letting it print the native method frame info only if the thread has a shared lock on the mutator lock, as opposed to asserting that it has a shared lock. Change-Id: I17851ebcaa37f4f67086c15243a2cffea3997a02
Loading
Please sign in to comment