Diff for /libaitsched/src/aitsched.c between versions 1.30.2.6 and 1.34.2.2

version 1.30.2.6, 2023/02/25 15:46:15 version 1.34.2.2, 2023/08/31 15:31:17
Line 211  schedInit(void ** __restrict data, size_t datlen) Line 211  schedInit(void ** __restrict data, size_t datlen)
 {  {
         sched_root_task_t *root = NULL;          sched_root_task_t *root = NULL;
         int (*func)(sched_root_task_t *);          int (*func)(sched_root_task_t *);
   #if SUP_ENABLE == KQ_SUPPORT
           sigset_t ss;
   #endif
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD
         register int i;          register int i;
 #endif  #endif
Line 268  schedInit(void ** __restrict data, size_t datlen) Line 271  schedInit(void ** __restrict data, size_t datlen)
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD
                 for (i = 0; i < taskMAX; i++)                  for (i = 0; i < taskMAX; i++)
                         pthread_mutex_unlock(&root->root_mtx[i]);                          pthread_mutex_unlock(&root->root_mtx[i]);
   
   #if SUP_ENABLE == KQ_SUPPORT
                   sigfillset(&ss);
                   pthread_sigmask(SIG_BLOCK, &ss, &root->root_oldset);
   #else
                   pthread_sigmask(SIG_BLOCK, NULL, &root->root_oldset);
 #endif  #endif
   #else
                   sigprocmask(SIG_BLOCK, NULL, &root->root_oldset);
   #endif
   
                 if (data && *data) {                  if (data && *data) {
                         if (datlen) {                          if (datlen) {
Line 404  schedEnd(sched_root_task_t ** __restrict root) Line 416  schedEnd(sched_root_task_t ** __restrict root)
                 pthread_mutex_unlock(&(*root)->root_sigmtx);                  pthread_mutex_unlock(&(*root)->root_sigmtx);
         }          }
         pthread_mutex_destroy(&(*root)->root_sigmtx);          pthread_mutex_destroy(&(*root)->root_sigmtx);
   #else
           sigprocmask(SIG_SETMASK, &(*root)->root_oldset, NULL);
 #endif  #endif
   
         e_free(*root);          e_free(*root);
Line 1181  int Line 1195  int
 schedSignalDispatch(sched_root_task_t * __restrict root, int on)  schedSignalDispatch(sched_root_task_t * __restrict root, int on)
 {  {
         sigset_t ss;          sigset_t ss;
           struct timespec ts = { .tv_sec = 1, .tv_nsec = 0 };
 #ifndef HAVE_LIBPTHREAD  #ifndef HAVE_LIBPTHREAD
         sched_SetErr(ENOTSUP, "Library has not support pthreads");          sched_SetErr(ENOTSUP, "Library has not support pthreads");
         return -1;          return -1;
Line 1199  schedSignalDispatch(sched_root_task_t * __restrict roo Line 1214  schedSignalDispatch(sched_root_task_t * __restrict roo
 #else  #else
                 root->root_sigthr = NULL;                  root->root_sigthr = NULL;
 #endif  #endif
                 pthread_sigmask(SIG_SETMASK, &root->root_oldset, NULL);  
   
                 pthread_mutex_unlock(&root->root_sigmtx);  
                 return 0;                  return 0;
         }          }
   
           /* if we have not using polling, then we must turn on */
           if (sched_timespecisinf(&root->root_poll))
                   schedPolling(root, &ts, NULL);
   
         pthread_attr_init(&attr);          pthread_attr_init(&attr);
         pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);          pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
 #ifdef SCHED_RR  #ifdef SCHED_RR
Line 1214  schedSignalDispatch(sched_root_task_t * __restrict roo Line 1230  schedSignalDispatch(sched_root_task_t * __restrict roo
 #endif  #endif
   
         sigfillset(&ss);          sigfillset(&ss);
        pthread_sigmask(SIG_BLOCK, &ss, &root->root_oldset);        pthread_sigmask(SIG_BLOCK, &ss, NULL);
 
         if (pthread_create(&root->root_sigthr, &attr, _sched_sigDisp, root)) {          if (pthread_create(&root->root_sigthr, &attr, _sched_sigDisp, root)) {
                 sched_SetErr(errno, "pthread_create(SignalDispatch) #%d - %s",                   sched_SetErr(errno, "pthread_create(SignalDispatch) #%d - %s", 
                                 errno, strerror(errno));                                  errno, strerror(errno));

Removed from v.1.30.2.6  
changed lines
  Added in v.1.34.2.2


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