diff options
Diffstat (limited to 'nuttx/sched')
-rw-r--r-- | nuttx/sched/os_start.c | 23 | ||||
-rw-r--r-- | nuttx/sched/task_vfork.c | 1 |
2 files changed, 16 insertions, 8 deletions
diff --git a/nuttx/sched/os_start.c b/nuttx/sched/os_start.c index 5e6eaa858..c60edc495 100644 --- a/nuttx/sched/os_start.c +++ b/nuttx/sched/os_start.c @@ -327,6 +327,12 @@ void os_start(void) } #endif + /* Allocate the IDLE group and suppress child status. */ + +#ifdef HAVE_TASK_GROUP + (void)group_allocate(&g_idletcb); +#endif + /* Initialize the interrupt handling subsystem (if included) */ #ifdef CONFIG_HAVE_WEAKFUNCTIONS @@ -439,20 +445,21 @@ void os_start(void) lib_initialize(); } - /* Create the IDLE group and suppress child status */ - -#ifdef HAVE_TASK_GROUP - (void)group_allocate(&g_idletcb); - (void)group_initialize(&g_idletcb); - g_idletcb.group->tg_flags = GROUP_FLAG_NOCLDWAIT; -#endif - /* Create stdout, stderr, stdin on the IDLE task. These will be * inherited by all of the threads created by the IDLE task. */ (void)group_setupidlefiles(&g_idletcb); + /* Complete initialization of the IDLE group. Suppress retention + * of child status in the IDLE group. + */ + +#ifdef HAVE_TASK_GROUP + (void)group_initialize(&g_idletcb); + g_idletcb.group->tg_flags = GROUP_FLAG_NOCLDWAIT; +#endif + /* Create initial tasks and bring-up the system */ (void)os_bringup(); diff --git a/nuttx/sched/task_vfork.c b/nuttx/sched/task_vfork.c index 5b42a1e55..ac86ddc56 100644 --- a/nuttx/sched/task_vfork.c +++ b/nuttx/sched/task_vfork.c @@ -39,6 +39,7 @@ #include <nuttx/config.h> +#include <sys/wait.h> #include <stdint.h> #include <assert.h> #include <queue.h> |