Diff for /libaitsched/src/aitsched.c between versions 1.1.1.1.2.4 and 1.1.1.1.2.5

version 1.1.1.1.2.4, 2011/08/13 17:28:17 version 1.1.1.1.2.5, 2011/09/09 14:14:33
Line 158  schedInit(void ** __restrict data, size_t datlen) Line 158  schedInit(void ** __restrict data, size_t datlen)
  * return: -1 error or 0 ok   * return: -1 error or 0 ok
  */   */
 int  int
schedEnd(sched_root_task_t * __restrict root)schedEnd(sched_root_task_t ** __restrict root)
 {  {
         sched_task_t *task;          sched_task_t *task;
   
        if (!root)        if (!root || !*root)
                 return -1;                  return -1;
   
        TAILQ_FOREACH(task, &root->root_read, task_node) {        TAILQ_FOREACH(task, &(*root)->root_read, task_node) {
                 schedCancel(task);                  schedCancel(task);
         }          }
        TAILQ_FOREACH(task, &root->root_write, task_node) {        TAILQ_FOREACH(task, &(*root)->root_write, task_node) {
                 schedCancel(task);                  schedCancel(task);
         }          }
        TAILQ_FOREACH(task, &root->root_timer, task_node) {        TAILQ_FOREACH(task, &(*root)->root_timer, task_node) {
                 schedCancel(task);                  schedCancel(task);
         }          }
        TAILQ_FOREACH(task, &root->root_event, task_node) {        TAILQ_FOREACH(task, &(*root)->root_event, task_node) {
                 schedCancel(task);                  schedCancel(task);
         }          }
        TAILQ_FOREACH(task, &root->root_ready, task_node) {        TAILQ_FOREACH(task, &(*root)->root_ready, task_node) {
                 schedCancel(task);                  schedCancel(task);
         }          }
   
        while ((task = TAILQ_FIRST(&root->root_unuse))) {        while ((task = TAILQ_FIRST(&(*root)->root_unuse))) {
                TAILQ_REMOVE(&root->root_unuse, task, task_node);                TAILQ_REMOVE(&(*root)->root_unuse, task, task_node);
                 free(task);                  free(task);
         }          }
   
        if (root->root_hooks.hook_root.fini)        if ((*root)->root_hooks.hook_root.fini)
                root->root_hooks.hook_root.fini(root, NULL);                (*root)->root_hooks.hook_root.fini(*root, NULL);
   
        free(root);        free(*root);
         *root = NULL;
         return 0;          return 0;
 }  }
   

Removed from v.1.1.1.1.2.4  
changed lines
  Added in v.1.1.1.1.2.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>