Patent ID: 7594053

Claim:
A method for providing to a plurality of users concurrent access to a set of shared resources, comprising: for an operation or set of operations requiring access to one or more of said shared resources by one of said plurality of users: (a) attempting to lock each required resource at the time it becomes necessary to use the resource in performing the operation or set of operations; (b) storing for each attempt to lock a required resource information associated with the attempt to lock the resource; and (c) in the event a lock cannot be obtained with respect to a required resource, initiating a renewed attempt to perform the operation or set of operations, the renewed attempt comprising using the stored information, at the outset of the renewed attempt to perform the operation or set of operations and prior to performing again one or more tasks of the operation or set of operations that were already performed in the previous attempt to perform the operation or set of operations, to lock or attempt to lock all of the required resources that were locked or attempted to be locked during the previous attempt to perform the operation or set of operations; in the event all of the required resources that were locked or attempted to be locked during the previous attempt to perform the operation or set of operations are successfully locked, using the locked resources to perform said one or more tasks of the operation or set of operations that were already performed in the previous attempt to perform the operation or set of operations and one or more attempted tasks, if any, associated with any resource that was unsuccessfully attempted to be locked in the previous attempt; and subsequently locking or attempting to lock each subsequently required resource, if any, required to complete one or more further, not previously completed or attempted tasks comprising the operation or set of operations, at the time it becomes necessary to use that subsequently required resource.