Diff for /libaitsched/src/aitsched.c between versions 1.29.8.1 and 1.29.8.2

version 1.29.8.1, 2023/01/18 22:25:54 version 1.29.8.2, 2023/02/23 15:31:17
Line 386  schedEnd(sched_root_task_t ** __restrict root) Line 386  schedEnd(sched_root_task_t ** __restrict root)
                 SCHED_QUNLOCK(*root, i);                  SCHED_QUNLOCK(*root, i);
                 pthread_mutex_destroy(&(*root)->root_mtx[i]);                  pthread_mutex_destroy(&(*root)->root_mtx[i]);
         }          }
   
           if ((*root)->root_sigthr) {
                   pthread_cancel((*root)->root_sigthr);
                   (*root)->root_sigthr ^= (*root)->root_sigthr;
           }
 #endif  #endif
   
         e_free(*root);          e_free(*root);
Line 1109  schedResumeby(sched_root_task_t * __restrict root, u_c Line 1114  schedResumeby(sched_root_task_t * __restrict root, u_c
         SCHED_QUNLOCK(root, taskSUSPEND);          SCHED_QUNLOCK(root, taskSUSPEND);
   
         return flg;          return flg;
   }
   
   static void *
   _sched_sigDisp(void *arg)
   {
           sched_root_task_t *sched = arg;
           sigset_t ss;
           int sig;
   
           sigfillset(&ss);
           while (sched->root_sigthr) {
                   sigwait(&ss, &sig);
   
           }
   
           return NULL;
   }
   
   /*
    * schedSignalDispatch() - Activate or Deactivate signal dispatcher
    *
    * @root = root task
    * @on = Activate or =0 deactivate
    * return: -1 error or 0 ok
    */
   int
   schedSignalDispatch(sched_root_task_t * __restrict root, int on)
   {
           sigset_t ss;
   #ifndef HAVE_LIBPTHREAD
           sched_SetErr(ENOTSUP, "Library has not support pthreads");
           return -1;
   #else
           pthread_attr_t attr;
   #endif
   
           if (!on) {
                   pthread_cancel(root->root_sigthr);
                   root->root_sigthr ^= root->root_sigthr;
                   return 0;
           }
   
           pthread_attr_init(&attr);
           pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
   #ifdef SCHED_RR
           pthread_attr_setschedpolicy(&attr, SCHED_RR);
   #else
           pthread_attr_setschedpolicy(&attr, SCHED_OTHER);
   #endif
   
           sigfillset(&ss);
           pthread_sigmask(SIG_BLOCK, &ss, NULL);
           if (pthread_create(&root->root_sigthr, &attr, _sched_sigDisp, root)) {
                   sched_SetErr(errno, "pthread_create(SignalDispatch) #%d - %s", 
                                   errno, strerror(errno));
                   return -1;
           }
   
           return 0;
 }  }

Removed from v.1.29.8.1  
changed lines
  Added in v.1.29.8.2


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