Lines Matching refs:manager

47 	isc_taskmgr_t *		manager;  member
103 empty_readyq(isc_taskmgr_t *manager);
106 pop_readyq(isc_taskmgr_t *manager);
109 push_readyq(isc_taskmgr_t *manager, isc_task_t *task);
117 isc_taskmgr_t *manager = task->manager; in task_finished() local
125 UNLINK(manager->tasks, task, link); in task_finished()
131 isc_task_create(isc_taskmgr_t *manager, unsigned int quantum, in isc_task_create() argument
142 task->manager = manager; in isc_task_create()
158 if (!manager->exiting) { in isc_task_create()
160 task->quantum = manager->default_quantum; in isc_task_create()
161 APPEND(manager->tasks, task, link); in isc_task_create()
231 isc_taskmgr_t *manager = task->manager; in task_ready() local
235 push_readyq(manager, task); in task_ready()
467 empty_readyq(isc_taskmgr_t *manager) { in empty_readyq() argument
470 if (manager->mode == isc_taskmgrmode_normal) in empty_readyq()
471 queue = manager->ready_tasks; in empty_readyq()
473 queue = manager->ready_priority_tasks; in empty_readyq()
487 pop_readyq(isc_taskmgr_t *manager) { in pop_readyq() argument
490 if (manager->mode == isc_taskmgrmode_normal) in pop_readyq()
491 task = HEAD(manager->ready_tasks); in pop_readyq()
493 task = HEAD(manager->ready_priority_tasks); in pop_readyq()
496 DEQUEUE(manager->ready_tasks, task, ready_link); in pop_readyq()
498 DEQUEUE(manager->ready_priority_tasks, task, in pop_readyq()
512 push_readyq(isc_taskmgr_t *manager, isc_task_t *task) { in push_readyq() argument
513 ENQUEUE(manager->ready_tasks, task, ready_link); in push_readyq()
515 ENQUEUE(manager->ready_priority_tasks, task, in push_readyq()
517 manager->tasks_ready++; in push_readyq()
521 dispatch(isc_taskmgr_t *manager) { in dispatch() argument
531 while (!FINISHED(manager)) { in dispatch()
533 empty_readyq(manager)) in dispatch()
536 task = pop_readyq(manager); in dispatch()
549 manager->tasks_ready--; in dispatch()
550 manager->tasks_running++; in dispatch()
639 manager->tasks_running--; in dispatch()
670 ISC_LIST_APPENDLIST(manager->ready_tasks, new_ready_tasks, ready_link); in dispatch()
671 ISC_LIST_APPENDLIST(manager->ready_priority_tasks, new_priority_tasks, in dispatch()
673 manager->tasks_ready += tasks_ready; in dispatch()
674 if (empty_readyq(manager)) in dispatch()
675 manager->mode = isc_taskmgrmode_normal; in dispatch()
680 manager_free(isc_taskmgr_t *manager) { in manager_free() argument
681 free(manager); in manager_free()
690 isc_taskmgr_t *manager; in isc_taskmgr_create() local
710 manager = malloc(sizeof(*manager)); in isc_taskmgr_create()
711 if (manager == NULL) in isc_taskmgr_create()
713 manager->mode = isc_taskmgrmode_normal; in isc_taskmgr_create()
717 manager->default_quantum = default_quantum; in isc_taskmgr_create()
718 INIT_LIST(manager->tasks); in isc_taskmgr_create()
719 INIT_LIST(manager->ready_tasks); in isc_taskmgr_create()
720 INIT_LIST(manager->ready_priority_tasks); in isc_taskmgr_create()
721 manager->tasks_running = 0; in isc_taskmgr_create()
722 manager->tasks_ready = 0; in isc_taskmgr_create()
723 manager->exclusive_requested = 0; in isc_taskmgr_create()
724 manager->pause_requested = 0; in isc_taskmgr_create()
725 manager->exiting = 0; in isc_taskmgr_create()
726 manager->excl = NULL; in isc_taskmgr_create()
728 manager->refs = 1; in isc_taskmgr_create()
729 taskmgr = manager; in isc_taskmgr_create()
731 *managerp = (isc_taskmgr_t *)manager; in isc_taskmgr_create()
738 isc_taskmgr_t *manager; in isc_taskmgr_destroy() local
747 manager = (isc_taskmgr_t *)*managerp; in isc_taskmgr_destroy()
751 manager->refs--; in isc_taskmgr_destroy()
752 if (manager->refs > 0) { in isc_taskmgr_destroy()
768 if (manager->excl != NULL) in isc_taskmgr_destroy()
769 isc_task_detach((isc_task_t **) &manager->excl); in isc_taskmgr_destroy()
774 INSIST(!manager->exiting); in isc_taskmgr_destroy()
775 manager->exiting = 1; in isc_taskmgr_destroy()
780 manager->mode = isc_taskmgrmode_normal; in isc_taskmgr_destroy()
786 for (task = HEAD(manager->tasks); in isc_taskmgr_destroy()
790 push_readyq(manager, task); in isc_taskmgr_destroy()
795 while (isc_taskmgr_ready((isc_taskmgr_t *)manager)) in isc_taskmgr_destroy()
796 (void)isc_taskmgr_dispatch((isc_taskmgr_t *)manager); in isc_taskmgr_destroy()
797 INSIST(ISC_LIST_EMPTY(manager->tasks)); in isc_taskmgr_destroy()
800 manager_free(manager); in isc_taskmgr_destroy()
806 isc_taskmgr_ready(isc_taskmgr_t *manager) { in isc_taskmgr_ready() argument
809 if (manager == NULL) in isc_taskmgr_ready()
810 manager = taskmgr; in isc_taskmgr_ready()
811 if (manager == NULL) in isc_taskmgr_ready()
814 is_ready = !empty_readyq(manager); in isc_taskmgr_ready()
820 isc_taskmgr_dispatch(isc_taskmgr_t *manager) { in isc_taskmgr_dispatch() argument
821 if (manager == NULL) in isc_taskmgr_dispatch()
822 manager = taskmgr; in isc_taskmgr_dispatch()
823 if (manager == NULL) in isc_taskmgr_dispatch()
826 dispatch(manager); in isc_taskmgr_dispatch()