Robert Shearman wrote:
David D. Hagood wrote:
Unless the installer is using TryEnterCriticalSection, I would expect CPU utilisation to be 0% when deadlocking.
Yes, *once the deadlock occurs* the CPU drops to 0%. The issue (I think) is more along the lines of this: On fast CPU: thread 1 locks resource A, does something, locks B, unlocks B, unlocks A. Thread 2 locks B, does something, locks A, does something, unlocks C, A. On slow machine: Thread 1 locks resource A, does something. Context switch. Thread 2 locks B, does something. Context switch Thread 1 tries to lock B and blocks. Context switch. Thread 2 tries to lock A and blocks. Deadlock. In other words, on the fast CPU the deadlock does not happen because thread 1 gets everything done before thread 2 starts. On the slow machine, thread 2 starts while thread 1 is still doing stuff.