summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--thread.c10
3 files changed, 11 insertions, 2 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index e9438809..43c7f307 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1052,6 +1052,7 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
language
for fixing displaying the free disk space when entering the recordings menu where
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>
for reporting a bug in cutting a recording if there is only a single editing mark
diff --git a/HISTORY b/HISTORY
index 0fd96aeb..fafe28e3 100644
--- a/HISTORY
+++ b/HISTORY
@@ -5743,6 +5743,8 @@ Video Disk Recorder Revision History
Nissl).
- Improved logging system time changes to avoid problems on slow systems under
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
diff --git a/thread.c b/thread.c
index 2d84918d..0c3b4f5b 100644
--- a/thread.c
+++ b/thread.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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"
@@ -17,6 +17,7 @@
#include <sys/syscall.h>
#include <sys/time.h>
#include <sys/wait.h>
+#include <sys/prctl.h>
#include <unistd.h>
#include "tools.h"
@@ -239,8 +240,13 @@ void cThread::SetDescription(const char *Description, ...)
void *cThread::StartThread(cThread *Thread)
{
Thread->childThreadId = ThreadId();
- if (Thread->description)
+ if (Thread->description) {
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();
if (Thread->description)
dsyslog("%s thread ended (pid=%d, tid=%d)", Thread->description, getpid(), Thread->childThreadId);