Described are techniques for avoiding deadlock. Each consumer is assigned a priority level denoting a number of resource allocation requests that have been currently granted to the consumer. The priority level is incremented for each resource allocation request granted to the consumer. A set of common resource pool(s) and a reserved resource pool are provided. A wait list of pending resource requests made by the consumers is maintained. If no allocated resources of the set of common pool(s) have been released for at least a threshold amount of time and there is at least one request on the wait list, first processing is performed which includes selecting, in accordance with one or more criteria, a first pending resource request from the wait list that was made by a first consumer, and assigning the first consumer exclusive use of the reserved pool for a lifetime of the first consumer.
展开▼