mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-28 15:43:34 +08:00
Move environment variables in the task group structure
git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5565 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -46,6 +46,9 @@
|
||||
|
||||
#include <nuttx/kmalloc.h>
|
||||
|
||||
#include "group_internal.h"
|
||||
#include "env_internal.h"
|
||||
|
||||
#ifdef HAVE_TASK_GROUP
|
||||
|
||||
/*****************************************************************************
|
||||
@@ -97,12 +100,29 @@
|
||||
|
||||
int group_allocate(FAR _TCB *tcb)
|
||||
{
|
||||
int ret;
|
||||
|
||||
DEBUGASSERT(tcb && !tcb->group);
|
||||
|
||||
/* Allocate the group structure and assign it to the TCB */
|
||||
|
||||
tcb->group = (FAR struct task_group_s *)kzalloc(sizeof(struct task_group_s));
|
||||
return tcb->group ? OK : -ENOMEM;
|
||||
if (!tcb->group)
|
||||
{
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
/* Duplicate the parent tasks envionment */
|
||||
|
||||
ret = env_dup(tcb);
|
||||
if (ret < 0)
|
||||
{
|
||||
kfree(tcb->group);
|
||||
tcb->group = NULL;
|
||||
return ret;
|
||||
}
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
@@ -128,12 +148,12 @@ int group_allocate(FAR _TCB *tcb)
|
||||
|
||||
int group_initialize(FAR _TCB *tcb)
|
||||
{
|
||||
#ifdef HAVE_GROUP_MEMBERS
|
||||
FAR struct task_group_s *group;
|
||||
|
||||
DEBUGASSERT(tcb && tcb->group);
|
||||
group = tcb->group;
|
||||
|
||||
#ifdef HAVE_GROUP_MEMBERS
|
||||
/* Allocate space to hold GROUP_INITIAL_MEMBERS members of the group */
|
||||
|
||||
group->tg_members = (FAR pid_t *)kmalloc(GROUP_INITIAL_MEMBERS*sizeof(pid_t));
|
||||
|
||||
Reference in New Issue
Block a user