Managing sequenced lock requests
First Claim
1. A method comprising:
- assigning a sequence number to a first software thread;
determining if said sequence number of said first software thread matches a current sequence number of a software lock, and if said sequence number of said first software thread does not match said current sequence number of said software lock, said method further comprising;
placing said first software thread into a wait queue, said wait queue comprising said first software thread and at least a second software thread, wherein said second software thread precedes said first software thread in said wait queue;
receiving, by said first software thread, a notification of an updated current sequence number;
determining if said sequence number of said first software thread matches said updated current sequence number;
acquiring said software lock and removing said first software thread from said wait queue if said sequence number of said first software thread matches said updated current sequence number; and
remaining in said wait queue and passing said notification to said second software thread if said updated current sequence number does not match said sequence number of said first software thread.
1 Assignment
0 Petitions
Accused Products
Abstract
A method according to one embodiment may include determining if a sequence number of a first thread matches a current sequence number of a lock. If the sequence number of the first thread does not match the current sequence number, the method further includes placing the first thread into a wait queue; receiving a notification of an updated current sequence number by the first thread; determining if the sequence number of the first thread matches the updated current sequence number; acquiring the lock if the sequence number of the first thread matches the updated current sequence number; and remaining in the wait queue if the updated current sequence number does not match the sequence number of the first thread. Of course, many alternatives, variations, and modifications are possible without departing from this embodiment.
-
Citations
20 Claims
-
1. A method comprising:
-
assigning a sequence number to a first software thread; determining if said sequence number of said first software thread matches a current sequence number of a software lock, and if said sequence number of said first software thread does not match said current sequence number of said software lock, said method further comprising; placing said first software thread into a wait queue, said wait queue comprising said first software thread and at least a second software thread, wherein said second software thread precedes said first software thread in said wait queue; receiving, by said first software thread, a notification of an updated current sequence number; determining if said sequence number of said first software thread matches said updated current sequence number; acquiring said software lock and removing said first software thread from said wait queue if said sequence number of said first software thread matches said updated current sequence number; and remaining in said wait queue and passing said notification to said second software thread if said updated current sequence number does not match said sequence number of said first software thread. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An article comprising a non-transitory storage medium having stored thereon instruction that when executed by a machine result in the following:
-
assigning a sequence number to a first software thread; determining if said sequence number of said first software thread matches a current sequence number of a software lock, and if said sequence number of said first software thread does not match said current sequence number, said instructions further resulting in; placing said first software thread into a wait queue, said wait queue comprising said first software thread and at least a second software thread, wherein said second software thread precedes said first software thread in said wait queue; receiving, said first software thread, a notification of an updated current sequence number; determining if said sequence number of said first software thread matches said updated current sequence number; acquiring said software lock and removing said first software thread from said wait queue if said sequence number of said first software thread matches said updated current sequence number; and remaining in said wait queue and passing said notification to said second software thread if said updated current sequence number does not match said sequence number of said first software thread. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A network device comprising:
-
a switch fabric; and multiple blades coupled to the switch fabric, at least one of the blades comprising an integrated circuit (IC) configured to execute instructions using a plurality of threads, said IC is further configured to; assign a sequence number to a first software thread; determine if said sequence number of said first software thread matches a current sequence number of a software lock, and if said sequence number of said first software thread does not match said current sequence number, said IC is further configured to; place said first software thread into a wait queue, said wait queue comprising said first software thread and at least a second software thread, wherein said second software thread precedes said first software thread in said wait queue; receive a notification of an updated current sequence number; determine if said sequence number of said first software thread matches said updated current sequence number; acquire said software lock and removing said first software thread from said wait queue if said sequence number of said first software thread matches said updated current sequence number; and remain in said wait queue and passing said notification to said second software thread if said updated current sequence number does not match said sequence number of said first software thread. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification