Diff for /libaitsched/src/hooks.c between versions 1.13.2.3 and 1.18

version 1.13.2.3, 2012/08/21 12:50:08 version 1.18, 2013/06/03 20:52:53
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, 2012Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
         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 110  sched_hook_cancel(void *task, void *arg __unused) Line 110  sched_hook_cancel(void *task, void *arg __unused)
 #ifdef AIO_SUPPORT  #ifdef AIO_SUPPORT
         struct aiocb *acb;          struct aiocb *acb;
 #ifdef EVFILT_LIO  #ifdef EVFILT_LIO
           register int i = 0;
         struct aiocb **acbs;          struct aiocb **acbs;
         register int i;  
 #endif  /* EVFILT_LIO */  #endif  /* EVFILT_LIO */
 #endif  /* AIO_SUPPORT */  #endif  /* AIO_SUPPORT */
   
Line 162  sched_hook_cancel(void *task, void *arg __unused) Line 162  sched_hook_cancel(void *task, void *arg __unused)
 #else  #else
                         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
                           /* restore signal */
                           signal(TASK_VAL(t), SIG_DFL);
                         break;                          break;
 #ifdef AIO_SUPPORT  #ifdef AIO_SUPPORT
                 case taskAIO:                  case taskAIO:
Line 211  sched_hook_cancel(void *task, void *arg __unused) Line 213  sched_hook_cancel(void *task, void *arg __unused)
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD
                         pthread_cancel((pthread_t) TASK_VAL(t));                          pthread_cancel((pthread_t) TASK_VAL(t));
 #endif  #endif
                         TASK_UNLOCK(t);  
                 default:                  default:
                         return NULL;                          return NULL;
         }          }
Line 233  sched_hook_thread(void *task, void *arg) Line 234  sched_hook_thread(void *task, void *arg)
 {  {
         sched_task_t *t = task;          sched_task_t *t = task;
         pthread_t tid;          pthread_t tid;
           sigset_t s, o;
   
         if (!t || !TASK_ROOT(t))          if (!t || !TASK_ROOT(t))
                 return (void*) -1;                  return (void*) -1;
   
        if (pthread_create(&tid, (pthread_attr_t*) arg,         sigfillset(&s);
                                (void *(*)(void*)) TASK_FUNC(t), t)) {        pthread_sigmask(SIG_BLOCK, &s, &o);
         if ((errno = pthread_create(&tid, (pthread_attr_t*) arg, 
                                 (void *(*)(void*)) _sched_threadWrapper, t))) {
                 LOGERR;                  LOGERR;
                   pthread_sigmask(SIG_SETMASK, &o, NULL);
                 return (void*) -1;                  return (void*) -1;
        }        } else
                 TASK_VAL(t) = (u_long) tid;
   
         if (!TASK_ISLOCKED(t))          if (!TASK_ISLOCKED(t))
                 TASK_LOCK(t);                  TASK_LOCK(t);
   
        TASK_VAL(t) = (u_long) tid;        pthread_sigmask(SIG_SETMASK, &o, NULL);
         return NULL;          return NULL;
 }  }
 #endif  #endif
Line 442  sched_hook_signal(void *task, void *arg __unused) Line 448  sched_hook_signal(void *task, void *arg __unused)
   
         if (!t || !TASK_ROOT(t))          if (!t || !TASK_ROOT(t))
                 return (void*) -1;                  return (void*) -1;
   
           /* ignore signal */
           signal(TASK_VAL(t), SIG_IGN);
   
 #ifdef __NetBSD__  #ifdef __NetBSD__
         EV_SET(&chg[0], TASK_VAL(t), EVFILT_SIGNAL, EV_ADD, 0, 0, (intptr_t) TASK_VAL(t));          EV_SET(&chg[0], TASK_VAL(t), EVFILT_SIGNAL, EV_ADD, 0, 0, (intptr_t) TASK_VAL(t));

Removed from v.1.13.2.3  
changed lines
  Added in v.1.18


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