version 1.15, 2012/08/21 12:54:39
|
version 1.15.2.1, 2012/08/22 10:33:45
|
Line 215 schedEnd(sched_root_task_t ** __restrict root)
|
Line 215 schedEnd(sched_root_task_t ** __restrict root)
|
sched_task_t *task, *tmp; |
sched_task_t *task, *tmp; |
#ifdef HAVE_LIBPTHREAD |
#ifdef HAVE_LIBPTHREAD |
register int i; |
register int i; |
|
pthread_t tid; |
#endif |
#endif |
|
|
if (!root || !*root) |
if (!root || !*root) |
Line 242 schedEnd(sched_root_task_t ** __restrict root)
|
Line 243 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) { |
| tid = (pthread_t) TASK_VAL(task); |
| schedCancel(task); |
| #ifdef HAVE_LIBPTHREAD |
| if (TASK_FLAG(task) == PTHREAD_CREATE_JOINABLE) |
| pthread_join(tid, NULL); |
| #endif |
| } |
| TAILQ_FOREACH_SAFE(task, &(*root)->root_task, task_node, tmp) |
schedCancel(task); |
schedCancel(task); |
|
|
#ifdef HAVE_LIBPTHREAD |
#ifdef HAVE_LIBPTHREAD |