Lines Matching refs:tasks
26 /* Header file for a priority queue of GOMP tasks. */
39 tasks within this task's priority. */
43 /* All tasks within the same priority. */
47 /* Priority of the tasks in this set. */
50 /* Tasks. */
51 struct priority_node *tasks;
53 /* This points to the last of the higher priority WAITING tasks.
56 parent_depends_on WAITING tasks.
57 !parent_depends_on WAITING tasks.
58 TIED tasks.
61 tasks which are essentially, higher priority items within their
78 /* The entry point into a priority queue of tasks.
80 There are two alternate implementations with which to store tasks:
81 as a balanced tree of sorts, or as a simple list of tasks. If
88 all tasks. This is only used if multiple priorities are in play,
90 (priority-0) tasks. */
161 head->l.tasks = NULL;
168 /* There's nothing to do, as tasks were freed as they were removed
203 return __atomic_load_n (&head->l.tasks, MEMMODEL_ACQUIRE) == NULL;
204 return head->l.tasks == NULL;
230 we must keep track of higher and lower priority WAITING tasks by
251 if (list->tasks)
256 run tasks. See the comment in
257 priority_queue_upgrade_task for a visual on how tasks
272 node->next = list->tasks;
273 node->prev = list->tasks->prev;
275 list->tasks = node;
284 list->tasks = node;
307 if (head->l.tasks != NULL)
313 k->key.l.tasks = head->l.tasks;
316 head->l.tasks = NULL;
327 k->key.l.tasks = NULL;
363 task from within Q1 and Q2, while giving preference to tasks from
391 /* If T is NULL, there are no WAITING tasks in Q1. In which
401 return priority_node_to_task (t1, q1->t.root->key.l.tasks);
408 return priority_node_to_task (t1, q1->l.tasks);
427 if (list->tasks == node)
430 list->tasks = node->next;
438 __atomic_store_n (&list->tasks, NULL, MEMMODEL_RELEASE);
440 list->tasks = NULL;
454 Remove NODE from priority queue HEAD. HEAD contains tasks of type TYPE.