Diff for /libaitsched/src/hooks.c between versions 1.24.4.3 and 1.24.4.7

version 1.24.4.3, 2014/01/28 10:07:06 version 1.24.4.7, 2014/01/28 12:57:52
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013Copyright 2004 - 2014
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 562  sched_hook_signal(void *task, void *arg __unused) Line 562  sched_hook_signal(void *task, void *arg __unused)
                         LOGERR;                          LOGERR;
                 return (void*) -1;                  return (void*) -1;
         }          }
   #else
   #if 0
           sched_task_t *t = task;
           struct sigaction sa;
   
           memset(&sa, 0, sizeof sa);
           sigemptyset(&sa.sa_mask);
           sa.sa_handler = _sched_sigHandler;
           sa.sa_flags = SA_RESETHAND | SA_RESTART;
   
           if (sigaction(TASK_VAL(t), &sa, NULL) == -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;
           }
   #endif  /* 0 */
 #endif  #endif
         return NULL;          return NULL;
 }  }
Line 624  sched_hook_fetch(void *root, void *arg __unused) Line 641  sched_hook_fetch(void *root, void *arg __unused)
         struct timespec *timeout, m, mtmp;          struct timespec *timeout, m, mtmp;
 #else  #else
         struct timeval *timeout, tv;          struct timeval *timeout, tv;
           fd_set rfd, wfd, xfd;
 #endif  #endif
         register int i, flg;          register int i, flg;
         int en;          int en;
Line 736  sched_hook_fetch(void *root, void *arg __unused) Line 754  sched_hook_fetch(void *root, void *arg __unused)
 #ifndef KQ_DISABLE  #ifndef KQ_DISABLE
         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) {
 #else  #else
        if ((en = select(r->root_kq, &r->root_fds[0], &r->root_fds[1],         rfd = xfd = r->root_fds[0];
                                        &r->root_fds[0], timeout)) == -1) {        wfd = r->root_fds[1];
         if ((en = select(r->root_kq, &rfd, &wfd, &xfd, timeout)) == -1) {
 #endif  /* KQ_DISABLE */  #endif  /* KQ_DISABLE */
                 if (r->root_hooks.hook_exec.exception) {                  if (r->root_hooks.hook_exec.exception) {
                         if (r->root_hooks.hook_exec.exception(r, NULL))                          if (r->root_hooks.hook_exec.exception(r, NULL))
Line 1129  sched_hook_fetch(void *root, void *arg __unused) Line 1148  sched_hook_fetch(void *root, void *arg __unused)
                                 if (TASK_FD(task) != i)                                  if (TASK_FD(task) != i)
                                         continue;                                          continue;
                                 else {                                  else {
                                           printf("Suck the milk %d !!!\n", i);
                                         flg++;                                          flg++;
                                         TASK_RET(task) ^= TASK_RET(task);                                          TASK_RET(task) ^= TASK_RET(task);
                                         TASK_FLAG(task) ^= TASK_FLAG(task);                                          TASK_FLAG(task) ^= TASK_FLAG(task);
Line 1183  sched_hook_fetch(void *root, void *arg __unused) Line 1203  sched_hook_fetch(void *root, void *arg __unused)
                                 if (TASK_FD(task) != i)                                  if (TASK_FD(task) != i)
                                         continue;                                          continue;
                                 else {                                  else {
                                           printf("HIT the pig %d !!!\n", i);
                                         flg++;                                          flg++;
                                         TASK_RET(task) ^= TASK_RET(task);                                          TASK_RET(task) ^= TASK_RET(task);
                                         TASK_FLAG(task) ^= TASK_FLAG(task);                                          TASK_FLAG(task) ^= TASK_FLAG(task);
Line 1231  sched_hook_fetch(void *root, void *arg __unused) Line 1252  sched_hook_fetch(void *root, void *arg __unused)
                                 FD_CLR(i, &r->root_fds[1]);                                  FD_CLR(i, &r->root_fds[1]);
                 }                  }
         }          }
   
           /* optimize select */
           for (i = r->root_kq - 1; i > 2; i--)
                   if (FD_ISSET(i, &r->root_fds[0]) || FD_ISSET(i, &r->root_fds[1]))
                           break;
           if (i > 2)
                   r->root_kq = i + 1;
 #endif  /* KQ_DISABLE */  #endif  /* KQ_DISABLE */
   
 skip_event:  skip_event:

Removed from v.1.24.4.3  
changed lines
  Added in v.1.24.4.7


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