Support unlimited pending checkpoints
Prevents the spinning that used to happen if RunCheckpoint was called with 3 pending checkpoints. This spinning was done when holding thread_list_lock_ and thread_suspend_count_lock_ and could deadlock if any of the pending checkpoints required any of these locks. The fix is to use an overflow list instead of having a fixed limit of 3. Changed suspend stress test to have more threads and only compare last line since there may be libbacktrace spam like: "+E/libbacktrace(69891): void SignalHandler(int, siginfo_t *, void *): Timed out waiting for unwind thread to indicate it completed." Bug: 28988206 Change-Id: I2ae611506147d5199d59a08eee0395f7fa35d448
Loading
Please sign in to comment