Diff for /libaitsched/src/hooks.c between versions 1.6.4.1 and 1.7

version 1.6.4.1, 2012/05/30 08:07:45 version 1.7, 2012/05/30 08:52:45
Line 107  sched_hook_cancel(void *task, void *arg __unused) Line 107  sched_hook_cancel(void *task, void *arg __unused)
         sched_task_t *t = task;          sched_task_t *t = task;
         struct kevent chg[1];          struct kevent chg[1];
         struct timespec timeout = { 0, 0 };          struct timespec timeout = { 0, 0 };
         uintptr_t ident;  
   
         if (!t || !TASK_ROOT(t))          if (!t || !TASK_ROOT(t))
                 return (void*) -1;                  return (void*) -1;
Line 130  sched_hook_cancel(void *task, void *arg __unused) Line 129  sched_hook_cancel(void *task, void *arg __unused)
                         kevent(TASK_ROOT(t)->root_kq, chg, 1, NULL, 0, &timeout);                          kevent(TASK_ROOT(t)->root_kq, chg, 1, NULL, 0, &timeout);
                         break;                          break;
                 case taskALARM:                  case taskALARM:
                         if (TASK_DATA(t))  
                                 ident = (uintptr_t) TASK_DATA(t);  
                         else  
                                 ident = (uintptr_t) TASK_FUNC(t);  
 #ifdef __NetBSD__  #ifdef __NetBSD__
                        EV_SET(&chg[0], ident, EVFILT_TIMER, EV_DELETE, 0, 0, (intptr_t) ident);                        EV_SET(&chg[0], (uintptr_t) TASK_DATA(t), EVFILT_TIMER, EV_DELETE, 
                                         0, 0, (intptr_t) TASK_DATA(t));
 #else  #else
                        EV_SET(&chg[0], ident, EVFILT_TIMER, EV_DELETE, 0, 0, (void*) ident);                        EV_SET(&chg[0], (uintptr_t) TASK_DATA(t), EVFILT_TIMER, EV_DELETE, 
                                         0, 0, (void*) TASK_DATA(t));
 #endif  #endif
                         kevent(TASK_ROOT(t)->root_kq, chg, 1, NULL, 0, &timeout);                          kevent(TASK_ROOT(t)->root_kq, chg, 1, NULL, 0, &timeout);
                         break;                          break;
Line 227  sched_hook_alarm(void *task, void *arg __unused) Line 224  sched_hook_alarm(void *task, void *arg __unused)
         sched_task_t *t = task;          sched_task_t *t = task;
         struct kevent chg[1];          struct kevent chg[1];
         struct timespec timeout = { 0, 0 };          struct timespec timeout = { 0, 0 };
         uintptr_t ident;  
   
         if (!t || !TASK_ROOT(t))          if (!t || !TASK_ROOT(t))
                 return (void*) -1;                  return (void*) -1;
   
         if (TASK_DATA(t))  
                 ident = (uintptr_t) TASK_DATA(t);  
         else  
                 ident = (uintptr_t) TASK_FUNC(t);  
   
 #ifdef __NetBSD__  #ifdef __NetBSD__
        EV_SET(&chg[0], ident, EVFILT_TIMER, EV_ADD | EV_ONESHOT, 0, 0, (intptr_t) ident);        EV_SET(&chg[0], (uintptr_t) TASK_DATA(t), EVFILT_TIMER, EV_ADD | EV_ONESHOT, 0, 
                         t->task_val.ts.tv_sec * 1000 + t->task_val.ts.tv_nsec / 1000000, 
                         (intptr_t) TASK_DATA(t));
 #else  #else
        EV_SET(&chg[0], ident, EVFILT_TIMER, EV_ADD | EV_ONESHOT, 0, 0, (void*) ident);        EV_SET(&chg[0], (uintptr_t) TASK_DATA(t), EVFILT_TIMER, EV_ADD | EV_ONESHOT, 0, 
                         t->task_val.ts.tv_sec * 1000 + t->task_val.ts.tv_nsec / 1000000, 
                         (void*) TASK_DATA(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 270  sched_hook_fetch(void *root, void *arg __unused) Line 265  sched_hook_fetch(void *root, void *arg __unused)
         struct kevent evt[1], res[KQ_EVENTS];          struct kevent evt[1], res[KQ_EVENTS];
         register int i;          register int i;
         int en;          int en;
         uintptr_t ident;  
   
         if (!r)          if (!r)
                 return NULL;                  return NULL;
Line 461  sched_hook_fetch(void *root, void *arg __unused) Line 455  sched_hook_fetch(void *root, void *arg __unused)
                                 }                                  }
                                 break;                                  break;
                         case EVFILT_TIMER:                          case EVFILT_TIMER:
                                 if (TASK_DATA(task))  
                                         ident = (uintptr_t) TASK_DATA(task);  
                                 else  
                                         ident = (uintptr_t) TASK_FUNC(task);  
                                 TAILQ_FOREACH_SAFE(task, &r->root_alarm, task_node, tmp) {                                  TAILQ_FOREACH_SAFE(task, &r->root_alarm, task_node, tmp) {
                                        if (ident != ((uintptr_t) res[i].udata))                                        if ((uintptr_t) TASK_DATA(task) != ((uintptr_t) res[i].udata))
                                                 continue;                                                  continue;
                                         /* remove alarm handle */                                          /* remove alarm handle */
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD

Removed from v.1.6.4.1  
changed lines
  Added in v.1.7


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