1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Using the thread id in the "thread ... won't end" error message

This commit is contained in:
Klaus Schmidinger 2006-01-04 15:01:22 +01:00
parent 5821c26c5e
commit 951b3509ea
2 changed files with 8 additions and 5 deletions

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.49 2006/01/03 10:15:54 kls Exp $ * $Id: thread.c 1.50 2006/01/04 15:01:22 kls Exp $
*/ */
#include "thread.h" #include "thread.h"
@ -205,6 +205,7 @@ cThread::cThread(const char *Description)
{ {
active = running = false; active = running = false;
childTid = 0; childTid = 0;
childThreadId = 0;
description = NULL; description = NULL;
SetDescription(Description); SetDescription(Description);
} }
@ -235,11 +236,12 @@ void cThread::SetDescription(const char *Description, ...)
void *cThread::StartThread(cThread *Thread) 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(), ThreadId()); dsyslog("%s thread started (pid=%d, tid=%d)", Thread->description, getpid(), Thread->childThreadId);
Thread->Action(); Thread->Action();
if (Thread->description) if (Thread->description)
dsyslog("%s thread ended (pid=%d, tid=%d)", Thread->description, getpid(), ThreadId()); dsyslog("%s thread ended (pid=%d, tid=%d)", Thread->description, getpid(), Thread->childThreadId);
Thread->running = false; Thread->running = false;
Thread->active = false; Thread->active = false;
return NULL; return NULL;
@ -297,7 +299,7 @@ void cThread::Cancel(int WaitSeconds)
return; return;
cCondWait::SleepMs(10); cCondWait::SleepMs(10);
} }
esyslog("ERROR: thread %ld won't end (waited %d seconds) - canceling it...", childTid, WaitSeconds); esyslog("ERROR: thread %d won't end (waited %d seconds) - canceling it...", childThreadId, WaitSeconds);
} }
pthread_cancel(childTid); pthread_cancel(childTid);
childTid = 0; childTid = 0;

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.h 1.34 2006/01/03 10:10:32 kls Exp $ * $Id: thread.h 1.35 2006/01/04 14:58:16 kls Exp $
*/ */
#ifndef __THREAD_H #ifndef __THREAD_H
@ -80,6 +80,7 @@ private:
bool active; bool active;
bool running; bool running;
pthread_t childTid; pthread_t childTid;
tThreadId childThreadId;
cMutex mutex; cMutex mutex;
char *description; char *description;
static tThreadId mainThreadId; static tThreadId mainThreadId;