mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed setting the main thread id if VDR is running as a daemon
This commit is contained in:
parent
86197f0206
commit
c01259dbb5
3
HISTORY
3
HISTORY
@ -3963,7 +3963,7 @@ Video Disk Recorder Revision History
|
|||||||
commands may now be executed at any time, and the message will be displayed
|
commands may now be executed at any time, and the message will be displayed
|
||||||
(no more "pending message").
|
(no more "pending message").
|
||||||
|
|
||||||
2006-01-01: Version 1.3.38
|
2006-01-03: Version 1.3.38
|
||||||
|
|
||||||
- Fixed handling second audio and Dolby Digital PIDs for encrypted channels
|
- Fixed handling second audio and Dolby Digital PIDs for encrypted channels
|
||||||
(was broken in version 1.3.37).
|
(was broken in version 1.3.37).
|
||||||
@ -4065,3 +4065,4 @@ Video Disk Recorder Revision History
|
|||||||
- The Makefile now reports a summary of failed plugins (thanks to Udo Richter).
|
- The Makefile now reports a summary of failed plugins (thanks to Udo Richter).
|
||||||
- The cTimer constructor can now take an optional cChannel (suggested by
|
- The cTimer constructor can now take an optional cChannel (suggested by
|
||||||
Patrick Fischer).
|
Patrick Fischer).
|
||||||
|
- Fixed setting the main thread id if VDR is running as a daemon.
|
||||||
|
12
thread.c
12
thread.c
@ -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.48 2006/01/01 14:50:44 kls Exp $
|
* $Id: thread.c 1.49 2006/01/03 10:15:54 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
@ -198,7 +198,7 @@ void cMutex::Unlock(void)
|
|||||||
|
|
||||||
// --- cThread ---------------------------------------------------------------
|
// --- cThread ---------------------------------------------------------------
|
||||||
|
|
||||||
tThreadId cThread::mainThreadId = cThread::ThreadId();
|
tThreadId cThread::mainThreadId = 0;
|
||||||
bool cThread::emergencyExitRequested = false;
|
bool cThread::emergencyExitRequested = false;
|
||||||
|
|
||||||
cThread::cThread(const char *Description)
|
cThread::cThread(const char *Description)
|
||||||
@ -320,6 +320,14 @@ tThreadId cThread::ThreadId(void)
|
|||||||
return gettid();
|
return gettid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cThread::SetMainThreadId(void)
|
||||||
|
{
|
||||||
|
if (mainThreadId == 0)
|
||||||
|
mainThreadId = ThreadId();
|
||||||
|
else
|
||||||
|
esyslog("ERROR: attempt to set main thread id to %d while it already is %d", ThreadId(), mainThreadId);
|
||||||
|
}
|
||||||
|
|
||||||
// --- cMutexLock ------------------------------------------------------------
|
// --- cMutexLock ------------------------------------------------------------
|
||||||
|
|
||||||
cMutexLock::cMutexLock(cMutex *Mutex)
|
cMutexLock::cMutexLock(cMutex *Mutex)
|
||||||
|
3
thread.h
3
thread.h
@ -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.33 2005/12/11 12:04:56 kls Exp $
|
* $Id: thread.h 1.34 2006/01/03 10:10:32 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __THREAD_H
|
#ifndef __THREAD_H
|
||||||
@ -117,6 +117,7 @@ public:
|
|||||||
static bool EmergencyExit(bool Request = false);
|
static bool EmergencyExit(bool Request = false);
|
||||||
static tThreadId ThreadId(void);
|
static tThreadId ThreadId(void);
|
||||||
static tThreadId IsMainThread(void) { return ThreadId() == mainThreadId; }
|
static tThreadId IsMainThread(void) { return ThreadId() == mainThreadId; }
|
||||||
|
static void SetMainThreadId(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
// cMutexLock can be used to easily set a lock on mutex and make absolutely
|
// cMutexLock can be used to easily set a lock on mutex and make absolutely
|
||||||
|
5
vdr.c
5
vdr.c
@ -22,7 +22,7 @@
|
|||||||
*
|
*
|
||||||
* The project's page is at http://www.cadsoft.de/vdr
|
* The project's page is at http://www.cadsoft.de/vdr
|
||||||
*
|
*
|
||||||
* $Id: vdr.c 1.224 2005/12/31 13:30:11 kls Exp $
|
* $Id: vdr.c 1.225 2006/01/03 10:20:41 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
@ -473,6 +473,9 @@ int main(int argc, char *argv[])
|
|||||||
isyslog("VDR version %s started", VDRVERSION);
|
isyslog("VDR version %s started", VDRVERSION);
|
||||||
if (StartedAsRoot)
|
if (StartedAsRoot)
|
||||||
isyslog("switched to user '%s'", VdrUser);
|
isyslog("switched to user '%s'", VdrUser);
|
||||||
|
if (DaemonMode)
|
||||||
|
dsyslog("running as daemon (tid=%d)", cThread::ThreadId());
|
||||||
|
cThread::SetMainThreadId();
|
||||||
|
|
||||||
// Main program loop variables - need to be here to have them initialized before any EXIT():
|
// Main program loop variables - need to be here to have them initialized before any EXIT():
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user