The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.

The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.

Date of Patent:
Apr. 17, 2007

Filed:

Aug. 15, 2002
Applicants:

Zoltan C Szilagyi, Redmond, WA (US);

Matthew Paul Rhoten, Seattle, WA (US);

Philip Ti-fei Su, Redmond, WA (US);

Inventors:

Zoltan C Szilagyi, Redmond, WA (US);

Matthew Paul Rhoten, Seattle, WA (US);

Philip Ti-Fei Su, Redmond, WA (US);

Assignee:

Microsoft Corporation, Redmond, WA (US);

Attorney:
Primary Examiner:
Assistant Examiner:
Int. Cl.
CPC ...
G06F 17/30 (2006.01); G06F 15/16 (2006.01);
U.S. Cl.
CPC ...
Abstract

A locking arrangement for data structures is provided that prevents deadlocks, but still allows different threads to simultaneously obtain locks on different nodes of a data structure for both read and write operations. The locking system will fail a request to lock one or more resources in a data structure if access to those resources has already been restricted by a conflicting lock of an equal or higher priority. The locking system may also employ preemptable and non-preemptable locks such that, if a preemptable lock with a lower priority has restricted access to resources, then the locking system will preempt the lower priority lock in favor of a conflicting higher priority lock. Alternately, if a non-preemptable lock with a lower priority has restricted access to resources, then the locking system will wait until the lower priority lock is removed before implementing a requested conflicting higher priority lock.


Find Patent Forward Citations

Loading…