| CPC G06F 9/5038 (2013.01) [G06F 9/46 (2013.01); G06F 9/4881 (2013.01); G06F 9/50 (2013.01); G06F 9/5027 (2013.01)] | 5 Claims |

|
1. A multi-thread system, comprising:
a first processor core configured to schedule, at a first time, a first plurality of tasks of a first task group to be concurrently executed on a first plurality of worker threads; and
a second processor core configured to acquire a next task of the first plurality of tasks via an atomic exchange function performed on a pointer to a position in the first plurality of tasks, wherein:
the second processor, in response to the completion of a first task by a first worker thread of the first plurality of worker threads, acquires the next task for the first plurality of worker threads;
the first processor core is further configured to schedule, at a second time after the first time, a second plurality of tasks to be concurrently executed on the first plurality of worker threads;
the second processor core is configured to determine, via a result of the atomic exchange function, that the first plurality of tasks is completed;
the second processor core is configured to determine, via a result of the atomic exchange function, that the first task group is completed; and
the second processor core is configured to trigger a synchronized exit from the first task group by the first plurality of worker threads.
|