Patent ID: 7219348

Claim:
A computer implemented method of analyzing a multi-threaded program, comprising: suspending a first thread, the first thread holding a first synchronized object and requesting a second synchronization object that could result in a deadlock if acquired; receiving a request from a second thread to acquire the second synchronization object while the first thread is suspended; allowing the second thread to acquire the second synchronization object; and causing a latent deadlock to manifest by awakening the first thread in response to an event message, the awakened first thread resuming requesting the second synchronization object while the second thread is currently holding but not having released the second synchronization object, the latent deadlock manifesting itself when the second thread or a third thread attempts to acquire the first synchronization object; and detecting the latent deadlock including indicating cause of the latent deadlock in a manner enabling a user to remedy problems of the multi-threaded program.