Fix instrumenation in task_delete(); fix prctl parameter order
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4659 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
97301a8aed
commit
4ec728d71f
@ -88,9 +88,29 @@ int prctl(int option, ...)
|
||||
case PR_GET_NAME:
|
||||
#if CONFIG_TASK_NAME_SIZE > 0
|
||||
{
|
||||
int pid = va_arg(ap, int);
|
||||
/* Get the prctl arguments */
|
||||
|
||||
char *name = va_arg(ap, char *);
|
||||
FAR _TCB *tcb = sched_gettcb(pid);
|
||||
int pid = va_arg(ap, int);
|
||||
FAR _TCB *tcb;
|
||||
|
||||
/* Get the TCB associated with the PID (handling the special case of
|
||||
* pid==0 meaning "this thread"
|
||||
*/
|
||||
|
||||
if (!pid)
|
||||
{
|
||||
tcb = (FAR _TCB *)g_readytorun.head;
|
||||
}
|
||||
else
|
||||
{
|
||||
tcb = sched_gettcb(pid);
|
||||
}
|
||||
|
||||
/* An invalid pid be indicated by a NULL TCB returned from
|
||||
* sched_gettcb()
|
||||
*/
|
||||
|
||||
if (!tcb)
|
||||
{
|
||||
sdbg("Pid does not correspond to a task: %d\n", pid);
|
||||
@ -105,12 +125,18 @@ int prctl(int option, ...)
|
||||
goto errout;
|
||||
}
|
||||
|
||||
/* Now get or set the name */
|
||||
|
||||
if (option == PR_SET_NAME)
|
||||
{
|
||||
/* tcb->name may not be null-terminated */
|
||||
|
||||
strncpy(tcb->name, name, CONFIG_TASK_NAME_SIZE);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The returned value will be null-terminated, truncating if necessary */
|
||||
|
||||
strncpy(name, tcb->name, CONFIG_TASK_NAME_SIZE-1);
|
||||
name[CONFIG_TASK_NAME_SIZE-1];
|
||||
}
|
||||
|
@ -184,7 +184,7 @@ int task_delete(pid_t pid)
|
||||
* layer that the task no longer exists.
|
||||
*/
|
||||
|
||||
sched_note_stop(tcb);
|
||||
sched_note_stop(dtcb);
|
||||
|
||||
/* Deallocate its TCB */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user