From b416e414376c0eeb472e93a41b394085e94df7b2 Mon Sep 17 00:00:00 2001 From: entropy Date: Wed, 13 Sep 2006 20:04:57 +0000 Subject: [lcd4linux @ 2006-09-13 20:04:57 by entropy] threads change argv[0] to their thread name, for a neat 'ps' output git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@711 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- thread.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'thread.c') diff --git a/thread.c b/thread.c index bbfad14..2aac128 100644 --- a/thread.c +++ b/thread.c @@ -1,4 +1,4 @@ -/* $Id: thread.c,v 1.8 2006/07/12 21:01:41 reinelt Exp $ +/* $Id: thread.c,v 1.9 2006/09/13 20:04:57 entropy Exp $ * * thread handling (mutex, shmem, ...) * @@ -26,6 +26,9 @@ * * * $Log: thread.c,v $ + * Revision 1.9 2006/09/13 20:04:57 entropy + * threads change argv[0] to their thread name, for a neat 'ps' output + * * Revision 1.8 2006/07/12 21:01:41 reinelt * thread_destroy, minor cleanups * @@ -108,6 +111,10 @@ #endif +int thread_argc; +char **thread_argv; + + /* glibc 2.1 requires defining semun ourselves */ #ifdef _SEM_SEMUN_UNDEFINED union semun { @@ -195,13 +202,16 @@ int thread_create(const char *name, void (*thread) (void *data), void *data) pid_t pid, ppid; ppid = getpid(); - + switch (pid = fork()) { case -1: error("fatal error: fork(%s) failed: %s", name, strerror(errno)); return -1; case 0: info("thread %s starting...", name); + if (thread_argc > 0) { + strncpy(thread_argv[0],name,strlen(thread_argv[0])); + } thread(data); info("thread %s ended.", name); exit(0); -- cgit v1.2.3