version 1.15, 2012/08/21 12:54:39
|
version 1.15.2.3, 2012/08/23 00:31:41
|
Line 121 schedRegisterHooks(sched_root_task_t * __restrict root
|
Line 121 schedRegisterHooks(sched_root_task_t * __restrict root
|
return 0; |
return 0; |
} |
} |
|
|
|
#ifdef HAVE_LIBPTHREAD |
|
static void |
|
_sched_threadChild() |
|
{ |
|
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); |
|
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); |
|
pthread_testcancel(); |
|
} |
|
#endif |
|
|
/* |
/* |
* schedInit() - Init scheduler |
* schedInit() - Init scheduler |
* |
* |
Line 181 schedInit(void ** __restrict data, size_t datlen)
|
Line 191 schedInit(void ** __restrict data, size_t datlen)
|
TAILQ_INIT(&root->root_thread); |
TAILQ_INIT(&root->root_thread); |
|
|
#ifdef HAVE_LIBPTHREAD |
#ifdef HAVE_LIBPTHREAD |
|
pthread_atfork(NULL, NULL, _sched_threadChild); |
|
|
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]); |
#endif |
#endif |
Line 242 schedEnd(sched_root_task_t ** __restrict root)
|
Line 254 schedEnd(sched_root_task_t ** __restrict root)
|
schedCancel(task); |
schedCancel(task); |
TAILQ_FOREACH_SAFE(task, &(*root)->root_event, task_node, tmp) |
TAILQ_FOREACH_SAFE(task, &(*root)->root_event, task_node, tmp) |
schedCancel(task); |
schedCancel(task); |
TAILQ_FOREACH_SAFE(task, &(*root)->root_task, task_node, tmp) |
|
schedCancel(task); |
|
TAILQ_FOREACH_SAFE(task, &(*root)->root_suspend, task_node, tmp) |
TAILQ_FOREACH_SAFE(task, &(*root)->root_suspend, task_node, tmp) |
schedCancel(task); |
schedCancel(task); |
TAILQ_FOREACH_SAFE(task, &(*root)->root_ready, task_node, tmp) |
TAILQ_FOREACH_SAFE(task, &(*root)->root_ready, task_node, tmp) |
schedCancel(task); |
schedCancel(task); |
TAILQ_FOREACH_SAFE(task, &(*root)->root_thread, task_node, tmp) |
TAILQ_FOREACH_SAFE(task, &(*root)->root_thread, task_node, tmp) |
|
schedCancel(task); |
|
TAILQ_FOREACH_SAFE(task, &(*root)->root_task, task_node, tmp) |
schedCancel(task); |
schedCancel(task); |
|
|
#ifdef HAVE_LIBPTHREAD |
#ifdef HAVE_LIBPTHREAD |