Managing Threads in a Wake-and-Go Engine
First Claim
1. A method, in a data processing system, for performing a wake-and-go operation, the method comprising:
- detecting a thread running on a first processing unit within a plurality of processing units that is waiting for an event that modifies a data value associated with a target address;
creating a wake-and-go instance for the thread by populating a wake-and-go storage array with the target address;
placing the thread in a sleep state;
responsive to detecting the event that modifies the data value associated with the target address, assigning the wake-and-go instance to a second processing unit within the plurality of processing units; and
placing the thread in a non-sleep state on the second processing unit.
2 Assignments
0 Petitions
Accused Products
Abstract
A wake-and-go mechanism is provided for a data processing system. The wake-and-go mechanism detects a thread running on a first processing unit within a plurality of processing units that is waiting for an event that modifies a data value associated with a target address. The wake-and-go mechanism creates a wake-and-go instance for the thread by populating a wake-and-go storage array with the target address. The operating system places the thread in a sleep state. Responsive to detecting the event that modifies the data value associated with the target address, the wake-and-go mechanism assigns the wake-and-go instance to a second processing unit within the plurality of processing units. The operating system on the second processing unit places the thread in a non-sleep state.
-
Citations
20 Claims
-
1. A method, in a data processing system, for performing a wake-and-go operation, the method comprising:
-
detecting a thread running on a first processing unit within a plurality of processing units that is waiting for an event that modifies a data value associated with a target address; creating a wake-and-go instance for the thread by populating a wake-and-go storage array with the target address; placing the thread in a sleep state; responsive to detecting the event that modifies the data value associated with the target address, assigning the wake-and-go instance to a second processing unit within the plurality of processing units; and placing the thread in a non-sleep state on the second processing unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A data processing system, comprising:
-
a wake-and-go mechanism; and a wake-and-go storage array, wherein the wake-and-go mechanism is configured to; detect a thread running on a first processing unit within a plurality of processing units that is waiting for an event that modifies a data value associated with a target address; create a wake-and-go instance for the thread by populating a wake-and-go storage array with the target address; place the thread in a sleep state; responsive to detecting the event that modifies the data value associated with the target address, assign the wake-and-go instance to a second processing unit within the plurality of processing units; and place the thread in a non-sleep state on the second processing unit. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A computer program product comprising a computer recordable medium having a computer readable program recorded thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to:
-
detect a thread running on a first processing unit within a plurality of processing units that is waiting for an event that modifies a data value associated with a target address; create a wake-and-go instance for the thread by populating a wake-and-go storage array with the target address; place the thread in a sleep state; responsive to detecting the event that modifies the data value associated with the target address, assign the wake-and-go instance to a second processing unit within the plurality of processing units; and place the thread in a non-sleep state on the second processing unit. - View Dependent Claims (20)
-
Specification