Patent ID: 7904612

Claim:
A computer system having shared resources, comprising: at least one transaction source, the at least one transaction source having a pending transaction table; at least one target resource, the at least one target resource having an associated wait counter and an associated service counter; an interconnection network through which data is passed between the at least one transaction source and the at least one target resource; a computer having a processor and a computer readable memory operably coupled to a computer readable storage device; first program instructions to determine whether a transaction, requested from a target resource by a transaction source, has failed due to an insufficient amount of space at the target resource or at a queue in a path to the target resource; second program instructions to send a ticket containing a wait counter value to the transaction source; third program instructions to store the wait counter value in an entry of a pending transaction table and to maintain an association with the transaction; fourth program instructions to increment a service counter each time a transaction is completed at the target resource; fifth program instructions to broadcast, by a number of sideband signals available for snooping by a plurality of transaction sources, a service counter value to the transaction source each time the service counter is incremented; sixth program instructions to determine whether the wait counter value in the entry of the pending transaction table matches the service counter value received from a broadcast by the transaction target; seventh program instructions to reattempt, by the at least one transaction source, the transaction in response to the wait count value matching the service counter value; eighth program instructions to release the target resource in response to a failure of the transaction source to retry a transaction within an appropriate period of time; wherein the first through the eighth program instructions are stored in the computer readable medium for execution by the processor via the computer readable memory.