Concurrency-safe reader-writer lock with time out support
AssigneeMicrosoft Corporation
InventorsGopala Krishna R. Kakivaya, David N. Cutler, James M. Lyon
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsGopala Krishna R. Kakivaya, David N. Cutler, James M. Lyon
Estimating the term…
Synchronization services provide a concurrency-safe reader/writer lock supporting a time out feature. The lock can be implemented using lockless data structures to provide efficient synchronization services. Various features such as lock nesting and auto-transformation address common scenarios arising in componentized programs. The lock supports upgrading and suspension, and the time out feature can support an efficient, low-cost optimistic deadlock avoidance scheme. Peculiarities of the reader/writer scenario are addressed in an efficient way to maintain lock stability and consistency, thus providing synchronization services suitable for implementation at the kernel level. In one implementation using event objects, the events are managed for high efficiency and stability of the lock. For multiprocessor machines, a hybrid lock avoids a context switch by behaving as a spin lock before waiting for the lock to become available.
In a computer system, a method of granting a lock to a set of a plurality of concurrently-executing entities, the method comprising:
In a computer system, a method of protecting at least one protected resource during operations on the at least one protected resource by a set of a plurality of concurrently-executing entities, the method comprising:
In a computer system, a method of protecting at least one protected resource during operations on the at least one protected resource by a set of a plurality of concurrently-executing entities, the method comprising:
In a computer system having a plurality of executing threads and a plurality of protected resources, a method of avoiding deadlock in a deadlock avoidance scheme, the method comprising:
In a computer system, a method of providing reader/writer synchronization services to a set of a plurality of threads via a lock, the method comprising:
In a computer system, a method of altering a reader/writer lock's state to release the lock, wherein the lock is acquirable by a set of reading executing entities and a set of writing executing entities and the lock's state comprises an is-there-a-writer field, a reader-signaled field, and a writer-signaled field, the method comprising:
In a computer system, a lock object for providing reader/writer synchronization services to a set of a plurality of executing entities, the lock object comprising:
In a computer system, a lock object for providing reader/writer synchronization services to a set of a plurality of components executing on a thread, the lock object comprising:
In a computer system, a synchronization service for protecting at least one protected resource, the synchronization service comprising:
A computer-readable medium comprising a lock data structure representing a reader/writer lock, the lock data structure comprising the following fields:
Dependencies are inferred from the claim text.