IP Library Granted Patent US 8,769,546
Granted Patent B2
US 8,769,546 · App. 12/684,009 · Granted Jul 1, 2014

Busy-wait time for threads

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,769,546
App. No.
12/684,009
Granted
Jul 1, 2014
Kind
B2
Abstract

Method to selectively assign a reduced busy-wait time to threads is described. The method comprises determining whether at least one thread is spinning on a mutex lock associated with a condition variable and assigning, when the at least one thread is spinning on the mutex lock, a predetermined reduced busy-wait time for a subsequent thread spinning on the mutex lock.

Claims (29)

1. A method for controlling a busy-wait time assigned to a thread attempting to access a shared resource protected by a mutex lock associated with a condition variable, wherein a thread having acquired the mutex will access the shared resource when the state of the condition variable is favorable and will otherwise release the mutex and wait on the condition variable until the state becomes favorable, the method comprising:

attempting to acquire the mutex by a first thread and determining the mutex is unavailable for acquisition by the first thread; and

assigning one of a default busy-wait time and a reduced busy-wait time to the first thread in response to determining the mutex is unavailable, wherein the reduced busy-wait time is less than the default busy-wait time and greater than zero, the assigning comprising:

assigning the default busy-wait time when there are no other threads waiting on the condition variable; and

assigning the reduced busy-wait time when there is at least one other thread waiting on the condition variable.

2. The method of claim 1 wherein the assigning one of a default busy-wait time and a reduced busy-wait time to the first thread further comprises assigning the reduced busy-wait time when there is at least one other thread spinning on the mutex.

3. The method of claim 2 wherein the default busy-wait time is assigned when there are no other threads waiting on the condition variable and there are no other threads spinning on the mutex.

4. The method of claim 1 wherein the shared resource comprises a task queue and the condition variable indicates whether or not one or more tasks are present in the task queue.

5. The method of claim 4 wherein the first thread and the other threads are worker threads configured to dequeue one or more tasks from the task queue when accessing the shared resource, and further comprising a master thread configured to repeatedly attempt to post tasks to the task queue.

6. A computer program thread control device comprising:

a processor;

a memory comprising computer-readable instructions which, when executed, cause the processor to control a busy-wait time assigned to a thread attempting to access a shared resource protected by a mutex lock associated with a condition variable, wherein a thread having acquired the mutex will access the shared resource when the state of the condition variable is favorable and will otherwise release the mutex and wait on the condition variable until the state becomes favorable, the processor to:

attempt to acquire the mutex by a first thread and determine the mutex is unavailable for acquisition by the first thread; and

assign one of a default busy-wait time and a reduced busy-wait time to the first thread in response to determining the mutex is unavailable, wherein the reduced busy-wait time is less than the default busy-wait time and greater than zero, the processor to:

assign the default busy-wait time when there are no other threads waiting on the condition variable; and

assign the reduced busy-wait time when there is at least one other thread waiting on the condition variable.

7. The device of claim 6 wherein the assigning one of a default busy-wait time and a reduced busy-wait time to the first thread further comprises assigning the reduced busy-wait time when there is at least one other thread spinning on the mutex.

8. The device of claim 7 wherein the default busy-wait time is assigned when there are no other threads waiting on the condition variable and there are no other threads spinning on the mutex.

9. The device of claim 6 wherein the shared resource comprises a task queue and the condition variable indicates whether or not one or more tasks are present in the task queue.

10. The method of claim 9 wherein the first thread and the other threads are worker threads configured to dequeue one or more tasks from the task queue when accessing the shared resource, and further comprising a master thread configured to repeatedly attempt to post tasks to the task queue.

11. A non-transitory computer-readable storage medium (CRSM) having computer-executable instructions that when executed by a processor, causes the processor to control a busy-wait time assigned to a thread attempting to access a shared resource protected by a mutex lock associated with a condition variable, wherein a thread having acquired the mutex will access the shared resource when the state of the condition variable is favorable and will otherwise release the mutex and wait on the condition variable until the state becomes favorable, the instructions cause the processor to:

attempt to acquire the mutex by a first thread and determine the mutex is unavailable for acquisition by the first thread; and

assign one of a default busy-wait time and a reduced busy-wait time to the first thread in response to determining the mutex is unavailable, wherein the reduced busy-wait time is less than the default busy-wait time and greater than zero, the instructions cause the processor to:

assign the default busy-wait time when there are no other threads waiting on the condition variable; and

assign the reduced busy-wait time when there is at least one other thread waiting on the condition variable.

12. The CRSM of claim 11 wherein the assigning one of a default busy-wait time and a reduced busy-wait time to the first thread further comprises assigning the reduced busy-wait time when there is at least one other thread spinning on the mutex.

13. The CRSM of claim 12 wherein the default busy-wait time is assigned when there are no other threads waiting on the condition variable and there are no other threads spinning on the mutex.

14. The CRSM of claim 11 wherein the shared resource comprises a task queue and the condition variable indicates whether or not one or more tasks are present in the task queue.

15. The CRSM of claim 14 wherein the first thread and the other threads are worker threads configured to dequeue one or more tasks from the task queue when accessing the shared resource, and further comprising a master thread configured to repeatedly attempt to post tasks to the task queue.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 057650/0537 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2010
From: SASIDHARAN NAIR, RAKESH; GEORGE, SHERIN THYIL; CHANDRAMOULEESWARAN, ASWIN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 023749/0133 →