Diff for /libaitsched/src/tasks.c between versions 1.16.6.4 and 1.20.2.1

version 1.16.6.4, 2013/08/15 19:06:20 version 1.20.2.1, 2013/08/26 14:29:20
Line 117  _sched_threadCleanup(sched_task_t *t) Line 117  _sched_threadCleanup(sched_task_t *t)
   
         if (TASK_FLAG(t) == PTHREAD_CREATE_JOINABLE)          if (TASK_FLAG(t) == PTHREAD_CREATE_JOINABLE)
                 pthread_detach(pthread_self());                  pthread_detach(pthread_self());
   
         pthread_mutex_lock(&TASK_ROOT(t)->root_mtx[taskTHREAD]);  
         TAILQ_REMOVE(&TASK_ROOT(t)->root_thread, t, task_node);  
         pthread_mutex_unlock(&TASK_ROOT(t)->root_mtx[taskTHREAD]);  
   
         sched_unuseTask(t);  
 }  }
 void *  void *
 _sched_threadWrapper(sched_task_t *t)  _sched_threadWrapper(sched_task_t *t)
Line 140  _sched_threadWrapper(sched_task_t *t) Line 134  _sched_threadWrapper(sched_task_t *t)
         pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);          pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
         pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);          pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
   
           pthread_mutex_lock(&TASK_ROOT(t)->root_mtx[taskTHREAD]);
           TAILQ_REMOVE(&TASK_ROOT(t)->root_thread, t, task_node);
           pthread_mutex_unlock(&TASK_ROOT(t)->root_mtx[taskTHREAD]);
           sched_unuseTask(t);
   
         /* notify parent, thread is ready for execution */          /* notify parent, thread is ready for execution */
         sem_post(s);          sem_post(s);
         pthread_testcancel();          pthread_testcancel();
Line 152  _sched_threadWrapper(sched_task_t *t) Line 151  _sched_threadWrapper(sched_task_t *t)
 }  }
 #endif  #endif
   
   #if defined(HAVE_TIMER_CREATE) && defined(HAVE_TIMER_SETTIME)
   void *
   _sched_rtcWrapper(sched_task_t *t)
   {
           sched_task_func_t func;
           sched_task_t *task;
           sched_root_task_t *r;
   
           if (!t || !TASK_ROOT(t) || !TASK_DATA(t))
                   return NULL;
           else {
                   r = TASK_ROOT(t);
                   task = (sched_task_t*) TASK_DATA(t);
                   func = TASK_FUNC(task);
           }
   
   #ifdef HAVE_LIBPTHREAD
           pthread_mutex_lock(&r->root_mtx[taskRTC]);
   #endif
           TAILQ_REMOVE(&r->root_rtc, task, task_node);
   #ifdef HAVE_LIBPTHREAD
           pthread_mutex_unlock(&r->root_mtx[taskRTC]);
   #endif
           sched_unuseTask(task);
   
           timer_delete((timer_t) TASK_DATLEN(t));
   
           return func(task);
   }
   #endif
   
 #pragma GCC visibility pop  #pragma GCC visibility pop
   
 /*  /*
Line 1330  schedThread(sched_root_task_t * __restrict root, sched Line 1360  schedThread(sched_root_task_t * __restrict root, sched
  * @arg = 1st func argument   * @arg = 1st func argument
  * @ts = timeout argument structure, minimum alarm timer resolution is 1msec!   * @ts = timeout argument structure, minimum alarm timer resolution is 1msec!
  * @opt_data = Optional RTC ID   * @opt_data = Optional RTC ID
 * @opt_dlen = Optional Signal No. * @opt_dlen = Optional data length
  * return: NULL error or !=NULL new queued task   * return: NULL error or !=NULL new queued task
  */   */
 sched_task_t *  sched_task_t *

Removed from v.1.16.6.4  
changed lines
  Added in v.1.20.2.1


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