Diff for /libaitsched/src/aitsched.c between versions 1.14 and 1.16.2.1

version 1.14, 2012/08/08 23:04:41 version 1.16.2.1, 2012/08/31 13:00:41
Line 108  schedRegisterHooks(sched_root_task_t * __restrict root Line 108  schedRegisterHooks(sched_root_task_t * __restrict root
 #ifdef EVFILT_USER  #ifdef EVFILT_USER
         root->root_hooks.hook_add.user = sched_hook_user;          root->root_hooks.hook_add.user = sched_hook_user;
 #endif  #endif
   #ifdef HAVE_LIBPTHREAD
           root->root_hooks.hook_add.thread = sched_hook_thread;
   #endif
   
         root->root_hooks.hook_exec.cancel = sched_hook_cancel;          root->root_hooks.hook_exec.cancel = sched_hook_cancel;
         root->root_hooks.hook_exec.fetch = sched_hook_fetch;          root->root_hooks.hook_exec.fetch = sched_hook_fetch;
Line 148  schedInit(void ** __restrict data, size_t datlen) Line 151  schedInit(void ** __restrict data, size_t datlen)
   
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD
                 for (i = 0; i < taskMAX; i++)                  for (i = 0; i < taskMAX; i++)
                        if (pthread_mutex_init(&root->root_mtx[i], NULL)) {                        if ((errno = pthread_mutex_init(&root->root_mtx[i], NULL))) {
                                 LOGERR;                                  LOGERR;
                                 while (i)                                  while (i)
                                         pthread_mutex_destroy(&root->root_mtx[--i]);                                          pthread_mutex_destroy(&root->root_mtx[--i]);
Line 175  schedInit(void ** __restrict data, size_t datlen) Line 178  schedInit(void ** __restrict data, size_t datlen)
                 TAILQ_INIT(&root->root_suspend);                  TAILQ_INIT(&root->root_suspend);
                 TAILQ_INIT(&root->root_ready);                  TAILQ_INIT(&root->root_ready);
                 TAILQ_INIT(&root->root_unuse);                  TAILQ_INIT(&root->root_unuse);
                   TAILQ_INIT(&root->root_thread);
   
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD
                 for (i = 0; i < taskMAX; i++)                  for (i = 0; i < taskMAX; i++)
Line 238  schedEnd(sched_root_task_t ** __restrict root) Line 242  schedEnd(sched_root_task_t ** __restrict root)
                 schedCancel(task);                  schedCancel(task);
         TAILQ_FOREACH_SAFE(task, &(*root)->root_event, task_node, tmp)          TAILQ_FOREACH_SAFE(task, &(*root)->root_event, task_node, tmp)
                 schedCancel(task);                  schedCancel(task);
         TAILQ_FOREACH_SAFE(task, &(*root)->root_task, task_node, tmp)  
                 schedCancel(task);  
         TAILQ_FOREACH_SAFE(task, &(*root)->root_suspend, task_node, tmp)          TAILQ_FOREACH_SAFE(task, &(*root)->root_suspend, task_node, tmp)
                 schedCancel(task);                  schedCancel(task);
         TAILQ_FOREACH_SAFE(task, &(*root)->root_ready, task_node, tmp)          TAILQ_FOREACH_SAFE(task, &(*root)->root_ready, task_node, tmp)
                 schedCancel(task);                  schedCancel(task);
           TAILQ_FOREACH_SAFE(task, &(*root)->root_thread, task_node, tmp)
                   schedCancel(task);
           TAILQ_FOREACH_SAFE(task, &(*root)->root_task, task_node, tmp)
                   schedCancel(task);
   
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD
         pthread_mutex_lock(&(*root)->root_mtx[taskUNUSE]);          pthread_mutex_lock(&(*root)->root_mtx[taskUNUSE]);
Line 408  schedCancel(sched_task_t * __restrict task) Line 414  schedCancel(sched_task_t * __restrict task)
                 case taskREADY:                  case taskREADY:
                         queue = &TASK_ROOT(task)->root_ready;                          queue = &TASK_ROOT(task)->root_ready;
                         break;                          break;
                   case taskTHREAD:
                           queue = &TASK_ROOT(task)->root_thread;
                           break;
                 default:                  default:
                         queue = NULL;                          queue = NULL;
         }          }
Line 421  schedCancel(sched_task_t * __restrict task) Line 430  schedCancel(sched_task_t * __restrict task)
 #endif  #endif
         }          }
         if (TASK_TYPE(task) != taskUNUSE)          if (TASK_TYPE(task) != taskUNUSE)
                _sched_unuseTask(task);                sched_unuseTask(task);
   
         return 0;          return 0;
 }  }
Line 477  schedCancelby(sched_root_task_t * __restrict root, sch Line 486  schedCancelby(sched_root_task_t * __restrict root, sch
                         return -2;                          return -2;
                 if (schedCancelby(root, taskREADY, criteria, param, hook))                  if (schedCancelby(root, taskREADY, criteria, param, hook))
                         return -2;                          return -2;
                   if (schedCancelby(root, taskTHREAD, criteria, param, hook))
                           return -2;
                 return 0;                  return 0;
         }          }
         /* choosen queue */          /* choosen queue */
Line 523  schedCancelby(sched_root_task_t * __restrict root, sch Line 534  schedCancelby(sched_root_task_t * __restrict root, sch
                 case taskREADY:                  case taskREADY:
                         queue = &root->root_ready;                          queue = &root->root_ready;
                         break;                          break;
                   case taskTHREAD:
                           queue = &root->root_thread;
                           break;
                 default:                  default:
                         return 0;                          return 0;
         }          }
Line 583  schedCancelby(sched_root_task_t * __restrict root, sch Line 597  schedCancelby(sched_root_task_t * __restrict root, sch
   
                         TAILQ_REMOVE(queue, task, task_node);                          TAILQ_REMOVE(queue, task, task_node);
                         if (TASK_TYPE(task) != taskUNUSE)                          if (TASK_TYPE(task) != taskUNUSE)
                                _sched_unuseTask(task);                                sched_unuseTask(task);
   
                         flg ^= flg;     /* ok */                          flg ^= flg;     /* ok */
                 }                  }

Removed from v.1.14  
changed lines
  Added in v.1.16.2.1


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