Diff for /libaitsched/src/hooks.c between versions 1.27.2.4 and 1.27.2.5

version 1.27.2.4, 2014/05/21 22:22:57 version 1.27.2.5, 2014/05/21 23:05:43
Line 128  sched_hook_cancel(void *task, void *arg __unused) Line 128  sched_hook_cancel(void *task, void *arg __unused)
         struct timespec timeout = { 0, 0 };          struct timespec timeout = { 0, 0 };
 #else  #else
         sched_root_task_t *r = NULL;          sched_root_task_t *r = NULL;
        register int i;        register int i = -1;
 #endif  #endif
 #ifdef AIO_SUPPORT  #ifdef AIO_SUPPORT
         struct aiocb *acb;          struct aiocb *acb;
Line 152  sched_hook_cancel(void *task, void *arg __unused) Line 152  sched_hook_cancel(void *task, void *arg __unused)
 #else  #else
                         EV_SET(&chg[0], TASK_FD(t), EVFILT_READ, EV_DELETE, 0, 0, (void*) TASK_FD(t));                          EV_SET(&chg[0], TASK_FD(t), EVFILT_READ, EV_DELETE, 0, 0, (void*) TASK_FD(t));
 #endif  #endif
   #elif SUP_ENABLE == EP_SUPPORT
                           i = TASK_FD(t);
 #else  #else
                         FD_CLR(TASK_FD(t), &r->root_fds[0]);                          FD_CLR(TASK_FD(t), &r->root_fds[0]);
   
Line 170  sched_hook_cancel(void *task, void *arg __unused) Line 172  sched_hook_cancel(void *task, void *arg __unused)
 #else  #else
                         EV_SET(&chg[0], TASK_FD(t), EVFILT_WRITE, EV_DELETE, 0, 0, (void*) TASK_FD(t));                          EV_SET(&chg[0], TASK_FD(t), EVFILT_WRITE, EV_DELETE, 0, 0, (void*) TASK_FD(t));
 #endif  #endif
   #elif SUP_ENABLE == EP_SUPPORT
                           i = TASK_FD(t);
 #else  #else
                         FD_CLR(TASK_FD(t), &r->root_fds[1]);                          FD_CLR(TASK_FD(t), &r->root_fds[1]);
   
Line 289  sched_hook_cancel(void *task, void *arg __unused) Line 293  sched_hook_cancel(void *task, void *arg __unused)
   
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
         kevent(TASK_ROOT(t)->root_kq, chg, 1, NULL, 0, &timeout);          kevent(TASK_ROOT(t)->root_kq, chg, 1, NULL, 0, &timeout);
   #elif SUP_ENABLE == EP_SUPPORT
           if (i != -1)
                   epoll_ctl(TASK_ROOT(t)->root_kq, EPOLL_CTL_DEL, i, NULL);
 #endif  #endif
         return NULL;          return NULL;
 }  }
Line 343  sched_hook_read(void *task, void *arg __unused) Line 350  sched_hook_read(void *task, void *arg __unused)
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
         struct kevent chg[1];          struct kevent chg[1];
         struct timespec timeout = { 0, 0 };          struct timespec timeout = { 0, 0 };
   #elif SUP_ENABLE == EP_SUPPORT
           struct epoll_event ee = { .events = EPOLLIN | EPOLLPRI | EPOLLRDHUP, .data.fd = 0 };
 #else  #else
         sched_root_task_t *r = NULL;          sched_root_task_t *r = NULL;
 #endif  #endif
   
         if (!t || !TASK_ROOT(t))          if (!t || !TASK_ROOT(t))
                 return (void*) -1;                  return (void*) -1;
 #if SUP_ENABLE != KQ_SUPPORT  
         r = TASK_ROOT(t);  
 #endif  
   
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
 #ifdef __NetBSD__  #ifdef __NetBSD__
Line 366  sched_hook_read(void *task, void *arg __unused) Line 372  sched_hook_read(void *task, void *arg __unused)
                         LOGERR;                          LOGERR;
                 return (void*) -1;                  return (void*) -1;
         }          }
   #elif SUP_ENABLE == EP_SUPPORT
           ee.data.fd = TASK_FD(t);
           if (epoll_ctl(TASK_ROOT(t)->root_kq, EPOLL_CTL_ADD, TASK_FD(t), &ee) == -1) {
                   if (TASK_ROOT(t)->root_hooks.hook_exec.exception)
                           TASK_ROOT(t)->root_hooks.hook_exec.exception(TASK_ROOT(t), NULL);
                   else
                           LOGERR;
                   return (void*) -1;
           }
 #else  #else
           r = TASK_ROOT(t);
         FD_SET(TASK_FD(t), &r->root_fds[0]);          FD_SET(TASK_FD(t), &r->root_fds[0]);
         if (TASK_FD(t) >= r->root_kq)          if (TASK_FD(t) >= r->root_kq)
                 r->root_kq = TASK_FD(t) + 1;                  r->root_kq = TASK_FD(t) + 1;
Line 389  sched_hook_write(void *task, void *arg __unused) Line 405  sched_hook_write(void *task, void *arg __unused)
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
         struct kevent chg[1];          struct kevent chg[1];
         struct timespec timeout = { 0, 0 };          struct timespec timeout = { 0, 0 };
   #elif SUP_ENABLE == EP_SUPPORT
           struct epoll_event ee = { .events = EPOLLOUT, .data.fd = 0 };
 #else  #else
         sched_root_task_t *r = NULL;          sched_root_task_t *r = NULL;
 #endif  #endif
   
         if (!t || !TASK_ROOT(t))          if (!t || !TASK_ROOT(t))
                 return (void*) -1;                  return (void*) -1;
 #if SUP_ENABLE != KQ_SUPPORT  
         r = TASK_ROOT(t);  
 #endif  
   
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
 #ifdef __NetBSD__  #ifdef __NetBSD__
Line 412  sched_hook_write(void *task, void *arg __unused) Line 427  sched_hook_write(void *task, void *arg __unused)
                         LOGERR;                          LOGERR;
                 return (void*) -1;                  return (void*) -1;
         }          }
   #elif SUP_ENABLE == EP_SUPPORT
           ee.data.fd = TASK_FD(t);
           if (epoll_ctl(TASK_ROOT(t)->root_kq, EPOLL_CTL_ADD, TASK_FD(t), &ee) == -1) {
                   if (TASK_ROOT(t)->root_hooks.hook_exec.exception)
                           TASK_ROOT(t)->root_hooks.hook_exec.exception(TASK_ROOT(t), NULL);
                   else
                           LOGERR;
                   return (void*) -1;
           }
 #else  #else
           r = TASK_ROOT(t);
         FD_SET(TASK_FD(t), &r->root_fds[1]);          FD_SET(TASK_FD(t), &r->root_fds[1]);
         if (TASK_FD(t) >= r->root_kq)          if (TASK_FD(t) >= r->root_kq)
                 r->root_kq = TASK_FD(t) + 1;                  r->root_kq = TASK_FD(t) + 1;
Line 646  sched_hook_fetch(void *root, void *arg __unused) Line 671  sched_hook_fetch(void *root, void *arg __unused)
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
         struct kevent evt[1], res[KQ_EVENTS];          struct kevent evt[1], res[KQ_EVENTS];
         struct timespec *timeout;          struct timespec *timeout;
   #elif SUP_ENABLE == EP_SUPPORT
           struct epoll_event res[KQ_EVENTS];
           u_long timeout = 0;
 #else  #else
         struct timeval *timeout, tv;          struct timeval *timeout, tv;
         fd_set rfd, wfd, xfd;          fd_set rfd, wfd, xfd;
Line 743  sched_hook_fetch(void *root, void *arg __unused) Line 771  sched_hook_fetch(void *root, void *arg __unused)
         if (r->root_wait.tv_sec != -1 && r->root_wait.tv_nsec != -1) {          if (r->root_wait.tv_sec != -1 && r->root_wait.tv_nsec != -1) {
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
                 timeout = &r->root_wait;                  timeout = &r->root_wait;
   #elif SUP_ENABLE == EP_SUPPORT
                   timeout = r->root_wait.tv_sec * 1000 + r->root_wait.tv_nsec / 1000000;
 #else  #else
                 sched_timespec2val(&r->root_wait, &tv);                  sched_timespec2val(&r->root_wait, &tv);
                 timeout = &tv;                  timeout = &tv;
 #endif  /* KQ_SUPPORT */  #endif  /* KQ_SUPPORT */
         } else if (sched_timespecisinf(&r->root_poll))          } else if (sched_timespecisinf(&r->root_poll))
   #if SUP_ENABLE == EP_SUPPORT
                   timeout = -1;
   #else
                 timeout = NULL;                  timeout = NULL;
   #endif
         else {          else {
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
                 timeout = &r->root_poll;                  timeout = &r->root_poll;
   #elif SUP_ENABLE == EP_SUPPORT
                   timeout = r->root_poll.tv_sec * 1000 + r->root_poll.tv_nsec / 1000000;
 #else  #else
                 sched_timespec2val(&r->root_poll, &tv);                  sched_timespec2val(&r->root_poll, &tv);
                 timeout = &tv;                  timeout = &tv;
Line 760  sched_hook_fetch(void *root, void *arg __unused) Line 796  sched_hook_fetch(void *root, void *arg __unused)
   
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
         if ((en = kevent(r->root_kq, NULL, 0, res, KQ_EVENTS, timeout)) == -1) {          if ((en = kevent(r->root_kq, NULL, 0, res, KQ_EVENTS, timeout)) == -1) {
   #elif SUP_ENABLE == EP_SUPPORT
           if ((en = epoll_wait(r->root_kq, res, KQ_EVENTS, timeout)) == -1) {
 #else  #else
         rfd = xfd = r->root_fds[0];          rfd = xfd = r->root_fds[0];
         wfd = r->root_fds[1];          wfd = r->root_fds[1];

Removed from v.1.27.2.4  
changed lines
  Added in v.1.27.2.5


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