Lines Matching refs:gang

47 // or the task is aborted, or the work gang is terminated via stop().
57 Each gang is working on a task at a certain time.
61 Once the task has been completed, the gang unbounds
64 The yielding work gang thus exports two invokation
72 The shape of a yielding work gang is as follows:
75 Lock gang monitor
76 Check that there is no existing binding for the gang
78 Else, create a new binding of this gang to the given task
91 Lock gang monitor
106 the work gang.
108 NOTE: we can always create a new gang per each iteration
118 // Bind task to gang
161 reset(); // for next task; gang<->task binding released
188 // Restart the yielded gang workers
198 _task = NULL; // unbind gang from task
283 assert(gang() != NULL, "No gang to signal");
284 gang()->yield();
288 assert(gang() != NULL, "No gang to signal");
289 gang()->abort();
297 Monitor* gang_monitor = gang()->monitor();
304 gang()->internal_worker_poll(&data);
307 assert(gang()->task() == NULL, "No task binding");
315 if (gang()->started_workers() == yf_gang()->active_workers()) {
320 assert(gang()->started_workers() < yf_gang()->active_workers(),
322 id = gang()->started_workers();
323 gang()->internal_note_start();
324 // Now, release the gang mutex and do the work.
330 gang()->internal_note_finish();
333 assert(data.task() == gang()->task(), "Confused task binding");
334 if (gang()->finished_workers() == yf_gang()->active_workers()) {
350 assert(gang()->finished_workers() < yf_gang()->active_workers(),
359 if (gang()->finished_workers() + yf_gang()->yielded_workers()