Semaphore with timeout and lock-free fast path for message passing architectures
First Claim
Patent Images
1. A method, comprising:
- receiving a request from a client to access an object, the object including a plurality of resources;
placing the request in a lock-free pend queue of a semaphore, the lock-free pend queue excluding a locking operation on the semaphore that prevents the semaphore from being isolated;
manipulating a decision variable based on an availability of at least one of the plurality of resources;
determining whether the client can use a fast path to the object by atomically manipulating the decision variable, wherein the fast path is an operation that utilizes a lock-free path to the object; and
tracking elapsed time to manage semaphore timeouts,wherein at least one of the semaphore timeouts is used to adjust the decision variable.
3 Assignments
0 Petitions
Accused Products
Abstract
The exemplary embodiments describe systems and methods for utilizing a semaphore with timeout and lock-free path for message passing architectures. One embodiment is related to a method comprising receiving a request from a client to access an object, the object including a plurality of resources, placing the request in a lock-free pend queue of a semaphore, manipulating a count of the semaphore based on an availability of at least one of the plurality of resources, and determining whether the client can use a fast path to the object.
24 Citations
20 Claims
-
1. A method, comprising:
-
receiving a request from a client to access an object, the object including a plurality of resources; placing the request in a lock-free pend queue of a semaphore, the lock-free pend queue excluding a locking operation on the semaphore that prevents the semaphore from being isolated; manipulating a decision variable based on an availability of at least one of the plurality of resources; determining whether the client can use a fast path to the object by atomically manipulating the decision variable, wherein the fast path is an operation that utilizes a lock-free path to the object; and tracking elapsed time to manage semaphore timeouts, wherein at least one of the semaphore timeouts is used to adjust the decision variable. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 20)
-
-
9. A system, comprising:
-
an object including a plurality of resources; a semaphore including a lock-free pend queue and a decision variable; and an iso-locator core receiving a request from a client to access the object, placing the request in the lock-free pend queue of the semaphore, manipulating the decision variable of the semaphore based on an availability of at least one of the plurality of resources, and determining whether the client can use a fast path to the object by atomically manipulating the decision variable, wherein the fast path is an operation that uses a lock-free path to the object, wherein the lock-free pend queue excludes a locking operation on the semaphore that prevents the semaphore from being isolated, wherein the iso-locator core further tracks elapsed time to manage semaphore timeouts, and wherein at least one of the semaphore timeouts is used to adjust the decision variable. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer readable storage medium including a set of instructions executable by a processor, the set of instructions operable to:
-
receive a request from a client to access an object, the object including a plurality of resources; place the request in a lock-free pend queue of a semaphore, the lock-free pend queue excluding a locking operation on the semaphore that prevents the semaphore from being isolated; manipulate a decision variable based on an availability of at least one of the plurality of resources; determine whether the client can use a fast path to the object by atomically manipulating the decision variable, wherein the fast path is an operation that utilizes a lock-free path to the object; and track elapsed time to manage semaphore timeouts, wherein at least one of the semaphore timeouts is used to adjust the decision variable. - View Dependent Claims (18, 19)
-
Specification