Thread (1 message) 1 message, 1 author, 2009-06-17

Re: [RFC] set the thread name

From: KOSAKI Motohiro <hidden>
Date: 2009-06-17 01:13:48
Also in: linux-mm, lkml

(cc to linux-api)
Hi,

On Tue, Jun 16, 2009 at 20:39, Stefani Seibold[off-list ref] wrote:
quoted
Currently it is not easy to identify a thread in linux, because there is
no thread name like in some other OS.

If there were are thread name then we could extend a kernel segv message
and the /proc/<pid>/task/<tid>/... entries by a TName value like this:
prctl(PR_SET_NAME, ...) works perfectly here.
Oops, but man page describe another thing.

       PR_SET_NAME
              (Since Linux 2.6.9) Set the process name for the calling process
              to arg2.                    ^^^^^^^^^^^^

Should we change man page? or change implementation?

I bet many developer assume the implementation is right.

Bert

/* -*- c -*- */

#define _GNU_SOURCE
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <stdbool.h>
#include <math.h>
#include <pthread.h>
#include <sys/prctl.h>

void *
thread(void *arg)
{
    unsigned long i = (unsigned long)arg;
    char comm[16];
    snprintf(comm, sizeof comm, "task %02lu", i);
    prctl(PR_SET_NAME, comm, 0l, 0l, 0l);

    sleep(10);

    return NULL;
}

int
main(int ac, char *av[])
{
    pthread_t thr;
    unsigned long i, n = 10;
    char comm[16];

    printf("%u\n", getpid());
    sleep(5);
    snprintf(comm, sizeof comm, "master");
    prctl(PR_SET_NAME, comm, 0l, 0l, 0l);
    sleep(5);

    for (i = 0; i < n; i++)
        pthread_create(&thr, NULL, thread, (void *)i);

    pthread_join(thr, NULL);

    return 0;
}
quoted
Greetings,
Stefani


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at ?http://vger.kernel.org/majordomo-info.html
Please read the FAQ at ?http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help