sched/pthread: set default pthread name to parent's name

Align ps behavior with linux:

linux:

  $ ps -e -T | grep hello
  3758130 3758130 pts/10   00:00:00 hello
  3758130 3758131 pts/10   00:00:00 hello

nuttx:

  nsh> ps
    PID GROUP PRI POLICY   TYPE    NPX STATE    EVENT     SIGMASK   STACK COMMAND
  ...
      4     4 100 FIFO     Task    --- Waiting  Signal    00000000 067504 hello
      5     4 100 FIFO     pthread --- Waiting  Signal    00000000 067536 hello 0x561cef0dfc53 0x1

Signed-off-by: chao an <anchao@xiaomi.com>
This commit is contained in:
chao an 2023-01-29 16:27:04 +08:00 committed by Petro Karashchenko
parent 0443889124
commit 2ad0a02182

View File

@ -58,16 +58,6 @@
const pthread_attr_t g_default_pthread_attr = PTHREAD_ATTR_INITIALIZER;
/****************************************************************************
* Private Data
****************************************************************************/
#if CONFIG_TASK_NAME_SIZE > 0
/* This is the name for name-less pthreads */
static const char g_pthreadname[] = "<pthread>";
#endif
/****************************************************************************
* Private Functions
****************************************************************************/
@ -95,13 +85,14 @@ static const char g_pthreadname[] = "<pthread>";
****************************************************************************/
static inline void pthread_tcb_setup(FAR struct pthread_tcb_s *ptcb,
FAR struct tcb_s *parent,
pthread_trampoline_t trampoline,
pthread_addr_t arg)
{
#if CONFIG_TASK_NAME_SIZE > 0
/* Copy the pthread name into the TCB */
strncpy(ptcb->cmn.name, g_pthreadname, CONFIG_TASK_NAME_SIZE);
strncpy(ptcb->cmn.name, parent->name, CONFIG_TASK_NAME_SIZE);
ptcb->cmn.name[CONFIG_TASK_NAME_SIZE] = '\0';
#endif /* CONFIG_TASK_NAME_SIZE */
@ -404,11 +395,14 @@ int nx_pthread_create(pthread_trampoline_t trampoline, FAR pthread_t *thread,
}
#endif
parent = this_task();
DEBUGASSERT(parent != NULL);
/* Configure the TCB for a pthread receiving on parameter
* passed by value
*/
pthread_tcb_setup(ptcb, trampoline, arg);
pthread_tcb_setup(ptcb, parent, trampoline, arg);
/* Join the parent's task group */
@ -473,9 +467,6 @@ int nx_pthread_create(pthread_trampoline_t trampoline, FAR pthread_t *thread,
* so it has the same priority as the parent thread.
*/
parent = this_task();
DEBUGASSERT(parent != NULL);
if (ptcb->cmn.sched_priority < parent->sched_priority)
{
ret = nxsched_set_priority(&ptcb->cmn, parent->sched_priority);