Lines Matching refs:task
34 static void default_task_destr(task_t *task) in default_task_destr() argument
36 heap_free(task); in default_task_destr()
39 HRESULT push_task(task_t *task, task_proc_t proc, task_proc_t destr, LONG magic) in push_task() argument
46 destr(task); in push_task()
48 heap_free(task); in push_task()
52 task->target_magic = magic; in push_task()
53 task->proc = proc; in push_task()
54 task->destr = destr ? destr : default_task_destr; in push_task()
56 list_add_tail(&thread_data->task_list, &task->entry); in push_task()
65 task_t *task; in pop_task() local
74 task = LIST_ENTRY(thread_data->task_list.next, task_t, entry); in pop_task()
75 list_remove(&task->entry); in pop_task()
76 return task; in pop_task()
92 task_t *task; in flush_pending_tasks() local
98 task = LIST_ENTRY(liter, task_t, entry); in flush_pending_tasks()
99 if(task->target_magic == target) { in flush_pending_tasks()
100 list_remove(&task->entry); in flush_pending_tasks()
101 task->proc(task); in flush_pending_tasks()
102 task->destr(task); in flush_pending_tasks()
112 task_t *task; in remove_target_tasks() local
131 task = LIST_ENTRY(liter, task_t, entry); in remove_target_tasks()
132 if(task->target_magic == target) { in remove_target_tasks()
133 list_remove(&task->entry); in remove_target_tasks()
134 task->destr(task); in remove_target_tasks()
297 task_t *task = pop_task(); in hidden_proc() local
298 if(!task) in hidden_proc()
301 task->proc(task); in hidden_proc()
302 task->destr(task); in hidden_proc()