A method and system for using a requeueing procedure to resolve deadlocks
in a computing system is disclosed. A request for a resource may be
requeued after a designated period of time or wait cycles if it is
blocked from being granted. For example, a request for exclusive
ownership of a resource could be requeued if it cannot be granted within
an appropriate period of time. These types of requests are requeued to
allow other requests for the same resource to move ahead in the wait
queue. This allows other grantable requests behind the blocked request to
be immediately granted. Using this approach, it is possible that allowing
the other requests behind the timed-out request to move ahead in the
queue will set off a chain reaction of accesses to resources which will
clear the deadlock situation that initially causes the requeued
request(s) to be blocked.