Diff for /libaitsched/src/hooks.c between versions 1.7.2.1 and 1.7.2.4

version 1.7.2.1, 2012/05/31 14:17:59 version 1.7.2.4, 2012/05/31 21:48:01
Line 156  sched_hook_cancel(void *task, void *arg __unused) Line 156  sched_hook_cancel(void *task, void *arg __unused)
                         EV_SET(&chg[0], TASK_VAL(t), EVFILT_SIGNAL, EV_DELETE, 0, 0, (void*) TASK_VAL(t));                          EV_SET(&chg[0], TASK_VAL(t), EVFILT_SIGNAL, EV_DELETE, 0, 0, (void*) TASK_VAL(t));
 #endif  #endif
                         break;                          break;
   #ifdef EVFILT_USER
                 case taskUSER:                  case taskUSER:
 #ifdef __NetBSD__  #ifdef __NetBSD__
                         EV_SET(&chg[0], TASK_VAL(t), EVFILT_USER, EV_DELETE, 0, 0, (intptr_t) TASK_VAL(t));                          EV_SET(&chg[0], TASK_VAL(t), EVFILT_USER, EV_DELETE, 0, 0, (intptr_t) TASK_VAL(t));
 #else  #else
                         EV_SET(&chg[0], TASK_VAL(t), EVFILT_USER, EV_DELETE, 0, 0, (void*) TASK_VAL(t));                          EV_SET(&chg[0], TASK_VAL(t), EVFILT_USER, EV_DELETE, 0, 0, (void*) TASK_VAL(t));
 #endif  #endif
   #endif
                         break;                          break;
                 default:                  default:
                        return (void*) -1;                        return NULL;
         }          }
   
         kevent(TASK_ROOT(t)->root_kq, chg, 1, NULL, 0, &timeout);          kevent(TASK_ROOT(t)->root_kq, chg, 1, NULL, 0, &timeout);
Line 386  sched_hook_signal(void *task, void *arg __unused) Line 388  sched_hook_signal(void *task, void *arg __unused)
  * @arg = unused   * @arg = unused
  * return: <0 errors and 0 ok   * return: <0 errors and 0 ok
  */   */
   #ifdef EVFILT_USER
 void *  void *
 sched_hook_user(void *task, void *arg __unused)  sched_hook_user(void *task, void *arg __unused)
 {  {
Line 397  sched_hook_user(void *task, void *arg __unused) Line 400  sched_hook_user(void *task, void *arg __unused)
                 return (void*) -1;                  return (void*) -1;
   
 #ifdef __NetBSD__  #ifdef __NetBSD__
        EV_SET(&chg[0], TASK_VAL(t), EVFILT_USER, EV_ADD | EV_CLEAR, NOTE_FFNOP, 0, (intptr_t) TASK_VAL(t));        EV_SET(&chg[0], TASK_VAL(t), EVFILT_USER, EV_ADD | EV_CLEAR, TASK_DATLEN(t), 
                         0, (intptr_t) TASK_VAL(t));
 #else  #else
        EV_SET(&chg[0], TASK_VAL(t), EVFILT_USER, EV_ADD | EV_CLEAR, NOTE_FFNOP, 0, (void*) TASK_VAL(t));        EV_SET(&chg[0], TASK_VAL(t), EVFILT_USER, EV_ADD | EV_CLEAR, TASK_DATLEN(t), 
                         0, (void*) TASK_VAL(t));
 #endif  #endif
         if (kevent(TASK_ROOT(t)->root_kq, chg, 1, NULL, 0, &timeout) == -1) {          if (kevent(TASK_ROOT(t)->root_kq, chg, 1, NULL, 0, &timeout) == -1) {
                 if (TASK_ROOT(t)->root_hooks.hook_exec.exception)                  if (TASK_ROOT(t)->root_hooks.hook_exec.exception)
Line 411  sched_hook_user(void *task, void *arg __unused) Line 416  sched_hook_user(void *task, void *arg __unused)
   
         return NULL;          return NULL;
 }  }
   #endif
   
 /*  /*
  * sched_hook_fetch() - Default FETCH hook   * sched_hook_fetch() - Default FETCH hook
Line 645  sched_hook_fetch(void *root, void *arg __unused) Line 651  sched_hook_fetch(void *root, void *arg __unused)
                                 TAILQ_FOREACH_SAFE(task, &r->root_node, task_node, tmp) {                                  TAILQ_FOREACH_SAFE(task, &r->root_node, task_node, tmp) {
                                         if (TASK_FD(task) != ((intptr_t) res[i].udata))                                          if (TASK_FD(task) != ((intptr_t) res[i].udata))
                                                 continue;                                                  continue;
                                           else {
                                                   TASK_DATA(task) = (void*) res[i].data;
                                                   TASK_DATLEN(task) = res[i].fflags;
                                           }
                                         /* remove node handle */                                          /* remove node handle */
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD
                                         pthread_mutex_lock(&r->root_mtx[taskNODE]);                                          pthread_mutex_lock(&r->root_mtx[taskNODE]);
Line 668  sched_hook_fetch(void *root, void *arg __unused) Line 678  sched_hook_fetch(void *root, void *arg __unused)
                                 TAILQ_FOREACH_SAFE(task, &r->root_proc, task_node, tmp) {                                  TAILQ_FOREACH_SAFE(task, &r->root_proc, task_node, tmp) {
                                         if (TASK_VAL(task) != ((uintptr_t) res[i].udata))                                          if (TASK_VAL(task) != ((uintptr_t) res[i].udata))
                                                 continue;                                                  continue;
                                           else {
                                                   TASK_DATA(task) = (void*) res[i].data;
                                                   TASK_DATLEN(task) = res[i].fflags;
                                           }
                                         /* remove proc handle */                                          /* remove proc handle */
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD
                                         pthread_mutex_lock(&r->root_mtx[taskPROC]);                                          pthread_mutex_lock(&r->root_mtx[taskPROC]);
Line 710  sched_hook_fetch(void *root, void *arg __unused) Line 724  sched_hook_fetch(void *root, void *arg __unused)
                                         break;                                          break;
                                 }                                  }
                                 break;                                  break;
   #ifdef EVFILT_USER
                         case EVFILT_USER:                          case EVFILT_USER:
                                 TAILQ_FOREACH_SAFE(task, &r->root_user, task_node, tmp) {                                  TAILQ_FOREACH_SAFE(task, &r->root_user, task_node, tmp) {
                                         if (TASK_VAL(task) != ((uintptr_t) res[i].udata))                                          if (TASK_VAL(task) != ((uintptr_t) res[i].udata))
                                                 continue;                                                  continue;
                                           else {
                                                   TASK_DATA(task) = (void*) res[i].data;
                                                   TASK_DATLEN(task) = res[i].fflags;
                                           }
                                         /* remove user handle */                                          /* remove user handle */
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD
                                         pthread_mutex_lock(&r->root_mtx[taskUSER]);                                          pthread_mutex_lock(&r->root_mtx[taskUSER]);
Line 733  sched_hook_fetch(void *root, void *arg __unused) Line 752  sched_hook_fetch(void *root, void *arg __unused)
                                         break;                                          break;
                                 }                                  }
                                 break;                                  break;
   #endif
                 }                  }
                 if (kevent(r->root_kq, evt, 1, NULL, 0, &now) == -1) {                  if (kevent(r->root_kq, evt, 1, NULL, 0, &now) == -1) {
                         if (r->root_hooks.hook_exec.exception) {                          if (r->root_hooks.hook_exec.exception) {

Removed from v.1.7.2.1  
changed lines
  Added in v.1.7.2.4


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