Diff for /libaitsched/src/hooks.c between versions 1.39.4.1 and 1.39.4.2

version 1.39.4.1, 2023/02/23 17:13:01 version 1.39.4.2, 2023/02/25 15:46:15
Line 366  sched_hook_cancel(void *task, void *arg __unused) Line 366  sched_hook_cancel(void *task, void *arg __unused)
                         if (flg < 2)                          if (flg < 2)
                                 signal(TASK_VAL(t), SIG_DFL);                                  signal(TASK_VAL(t), SIG_DFL);
 #else  #else
                        if (flg < 2)                        if (flg < 2) {
                                 pthread_mutex_lock(&TASK_ROOT(t)->root_sigmtx);
                                 sigdelset(&TASK_ROOT(t)->root_sigset, TASK_VAL(t));                                  sigdelset(&TASK_ROOT(t)->root_sigset, TASK_VAL(t));
                                   pthread_mutex_unlock(&TASK_ROOT(t)->root_sigmtx);
                           }
 #endif  #endif
                         break;                          break;
 #ifdef AIO_SUPPORT  #ifdef AIO_SUPPORT
Line 842  sched_hook_signal(void *task, void *arg __unused) Line 845  sched_hook_signal(void *task, void *arg __unused)
                 return (void*) -1;                  return (void*) -1;
         }          }
 #else  #else
           pthread_mutex_lock(&TASK_ROOT(t)->root_sigmtx);
         sigaddset(&TASK_ROOT(t)->root_sigset, TASK_VAL(t));          sigaddset(&TASK_ROOT(t)->root_sigset, TASK_VAL(t));
           pthread_mutex_unlock(&TASK_ROOT(t)->root_sigmtx);
 #endif  #endif
   
         return NULL;          return NULL;
Line 1343  sched_hook_fetch(void *root, void *arg __unused) Line 1348  sched_hook_fetch(void *root, void *arg __unused)
 {  {
         sched_root_task_t *r = root;          sched_root_task_t *r = root;
         sched_task_t *task, *tmp;          sched_task_t *task, *tmp;
        struct timespec now, m, mtmp;        struct timespec now, m, mtmp, *tsmin;
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
         struct kevent res[KQ_EVENTS];          struct kevent res[KQ_EVENTS];
         struct timespec *timeout;          struct timespec *timeout;
Line 1406  sched_hook_fetch(void *root, void *arg __unused) Line 1411  sched_hook_fetch(void *root, void *arg __unused)
         } else  /* no waiting for event, because we have ready task */          } else  /* no waiting for event, because we have ready task */
                 sched_timespecclear(&r->root_wait);                  sched_timespecclear(&r->root_wait);
   
        if (r->root_wait.tv_sec != -1 && r->root_wait.tv_nsec != -1) {        if (!sched_timespecisinf(&r->root_wait)) {
                 tsmin = sched_timespecmin(&r->root_wait, &r->root_poll);
 #if SUP_ENABLE == KQ_SUPPORT  #if SUP_ENABLE == KQ_SUPPORT
                timeout = &r->root_wait;                timeout = tsmin;
 #elif SUP_ENABLE == EP_SUPPORT  #elif SUP_ENABLE == EP_SUPPORT
                timeout = r->root_wait.tv_sec * 1000 + r->root_wait.tv_nsec / 1000000;                timeout = tsmin->tv_sec * 1000 + tsmin->tv_nsec / 1000000;
 #else  #else
                sched_timespec2val(&r->root_wait, &tv);                sched_timespec2val(tsmin, &tv);
                 timeout = &tv;                  timeout = &tv;
 #endif  /* KQ_SUPPORT */  #endif  /* KQ_SUPPORT */
         } else if (sched_timespecisinf(&r->root_poll))          } else if (sched_timespecisinf(&r->root_poll))

Removed from v.1.39.4.1  
changed lines
  Added in v.1.39.4.2


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