Diff for /libaitsched/src/aitsched.c between versions 1.31 and 1.31.2.2

version 1.31, 2023/02/25 15:55:01 version 1.31.2.2, 2023/07/27 20:47:12
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 *);
           sigset_t ss;
 #ifdef HAVE_LIBPTHREAD  #ifdef HAVE_LIBPTHREAD
         register int i;          register int i;
 #endif  #endif
Line 268  schedInit(void ** __restrict data, size_t datlen) Line 269  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]);
   
                   sigfillset(&ss);
                   pthread_sigmask(SIG_BLOCK, &ss, &root->root_oldset);
   #else
                   sigprocmask(SIG_BLOCK, &ss, &root->root_oldset);
 #endif  #endif
   
                 if (data && *data) {                  if (data && *data) {
Line 404  schedEnd(sched_root_task_t ** __restrict root) Line 410  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 1180  _sched_sigDisp(void *arg) Line 1188  _sched_sigDisp(void *arg)
 int  int
 schedSignalDispatch(sched_root_task_t * __restrict root, int on)  schedSignalDispatch(sched_root_task_t * __restrict root, int on)
 {  {
        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 1207  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 1213  schedSignalDispatch(sched_root_task_t * __restrict roo Line 1222  schedSignalDispatch(sched_root_task_t * __restrict roo
         pthread_attr_setschedpolicy(&attr, SCHED_OTHER);          pthread_attr_setschedpolicy(&attr, SCHED_OTHER);
 #endif  #endif
   
         sigfillset(&ss);  
         pthread_sigmask(SIG_BLOCK, &ss, &root->root_oldset);  
         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));
Line 1223  schedSignalDispatch(sched_root_task_t * __restrict roo Line 1230  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);  
                 return -1;                  return -1;
         }          }
   

Removed from v.1.31  
changed lines
  Added in v.1.31.2.2


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