Now setting the thread name, so that it can be seen in 'top -H'

This commit is contained in:
Klaus Schmidinger 2008-04-13 12:14:58 +02:00
parent bb808bf78e
commit 2427a1b12c
3 changed files with 11 additions and 2 deletions

View File

@ -1052,6 +1052,7 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
language language
for fixing displaying the free disk space when entering the recordings menu where for fixing displaying the free disk space when entering the recordings menu where
the last replayed recording was in a subdirectory, and pressing Back the last replayed recording was in a subdirectory, and pressing Back
for setting the thread name, so that it can be seen in 'top -H'
Ralf Klueber <ralf.klueber@vodafone.com> Ralf Klueber <ralf.klueber@vodafone.com>
for reporting a bug in cutting a recording if there is only a single editing mark for reporting a bug in cutting a recording if there is only a single editing mark

View File

@ -5743,6 +5743,8 @@ Video Disk Recorder Revision History
Nissl). Nissl).
- Improved logging system time changes to avoid problems on slow systems under - Improved logging system time changes to avoid problems on slow systems under
heavy load (suggested by Helmut Auer). heavy load (suggested by Helmut Auer).
- Now setting the thread name, so that it can be seen in 'top -H' (thanks to Rolf
Ahrenberg).
2008-04-13: Version 1.6.0-1 2008-04-13: Version 1.6.0-1

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: thread.c 1.64 2008/02/15 14:17:42 kls Exp $ * $Id: thread.c 2.1 2008/04/13 11:53:56 kls Exp $
*/ */
#include "thread.h" #include "thread.h"
@ -17,6 +17,7 @@
#include <sys/syscall.h> #include <sys/syscall.h>
#include <sys/time.h> #include <sys/time.h>
#include <sys/wait.h> #include <sys/wait.h>
#include <sys/prctl.h>
#include <unistd.h> #include <unistd.h>
#include "tools.h" #include "tools.h"
@ -239,8 +240,13 @@ void cThread::SetDescription(const char *Description, ...)
void *cThread::StartThread(cThread *Thread) void *cThread::StartThread(cThread *Thread)
{ {
Thread->childThreadId = ThreadId(); Thread->childThreadId = ThreadId();
if (Thread->description) if (Thread->description) {
dsyslog("%s thread started (pid=%d, tid=%d)", Thread->description, getpid(), Thread->childThreadId); dsyslog("%s thread started (pid=%d, tid=%d)", Thread->description, getpid(), Thread->childThreadId);
#ifdef PR_SET_NAME
if (prctl(PR_SET_NAME, Thread->description, 0, 0, 0) < 0)
esyslog("%s thread naming failed (pid=%d, tid=%d)", Thread->description, getpid(), Thread->childThreadId);
#endif
}
Thread->Action(); Thread->Action();
if (Thread->description) if (Thread->description)
dsyslog("%s thread ended (pid=%d, tid=%d)", Thread->description, getpid(), Thread->childThreadId); dsyslog("%s thread ended (pid=%d, tid=%d)", Thread->description, getpid(), Thread->childThreadId);