vdr  1.7.31
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
cThread Class Reference

#include <thread.h>

Public Member Functions

 cThread (const char *Description=NULL)
virtual ~cThread ()
void SetDescription (const char *Description,...) __attribute__((format(printf
void bool Start (void)
bool Active (void)
 cThread (const char *Description=NULL)
virtual ~cThread ()
void SetDescription (const char *Description,...) __attribute__((format(printf
void bool Start (void)
bool Active (void)

Static Public Member Functions

static tThreadId ThreadId (void)
static tThreadId IsMainThread (void)
static void SetMainThreadId (void)
static tThreadId ThreadId (void)
static tThreadId IsMainThread (void)
static void SetMainThreadId (void)

Protected Member Functions

void SetPriority (int Priority)
void SetIOPriority (int Priority)
void Lock (void)
void Unlock (void)
virtual void Action (void)=0
bool Running (void)
void Cancel (int WaitSeconds=0)
void SetPriority (int Priority)
void SetIOPriority (int Priority)
void Lock (void)
void Unlock (void)
virtual void Action (void)=0
bool Running (void)
void Cancel (int WaitSeconds=0)

Static Private Member Functions

static void * StartThread (cThread *Thread)
static void * StartThread (cThread *Thread)

Private Attributes

bool active
bool running
pthread_t childTid
tThreadId childThreadId
cMutex mutex
char * description

Static Private Attributes

static tThreadId mainThreadId = 0

Friends

class cThreadLock

Detailed Description

Definition at line 77 of file include/vdr/thread.h.

Constructor & Destructor Documentation

cThread::cThread ( const char *  Description = NULL)

Creates a new thread.

If Description is present, a log file entry will be made when the thread starts and stops. The Start() function must be called to actually start the thread.

Definition at line 207 of file thread.c.

References active, childThreadId, childTid, description, running, and SetDescription().

cThread::~cThread ( )
virtual

Definition at line 217 of file thread.c.

References Cancel(), and description.

cThread::cThread ( const char *  Description = NULL)

Creates a new thread.

If Description is present, a log file entry will be made when the thread starts and stops. The Start() function must be called to actually start the thread.

virtual cThread::~cThread ( )
virtual

Member Function Documentation

virtual void cThread::Action ( void  )
protectedpure virtual

A derived cThread class must implement the code it wants to execute as a separate thread in this function.

If this is a loop, it must check Running() repeatedly to see whether it's time to stop.

Implemented in cIndexFileGenerator, cEpgDataWriter, cEpgDataReader, cEpgDataReader, cRecordings, cRecordings, cNonBlockingFileReader, cCiAdapter, cCiAdapter, cRemoveDeletedRecordingsThread, cDvbSubtitleConverter, cDvbSubtitleConverter, cCopyingThread, and cCuttingThread.

Referenced by StartThread().

virtual void cThread::Action ( void  )
protectedpure virtual

A derived cThread class must implement the code it wants to execute as a separate thread in this function.

If this is a loop, it must check Running() repeatedly to see whether it's time to stop.

Implemented in cIndexFileGenerator, cEpgDataWriter, cEpgDataReader, cEpgDataReader, cRecordings, cRecordings, cNonBlockingFileReader, cCiAdapter, cCiAdapter, cRemoveDeletedRecordingsThread, cDvbSubtitleConverter, cDvbSubtitleConverter, cCopyingThread, and cCuttingThread.

bool cThread::Active ( void  )

Checks whether the thread is still alive.

Definition at line 293 of file thread.c.

References active, childTid, LOG_ERROR, and running.

Referenced by cFileTransfer::Active(), cCutter::Active(), Cancel(), cSchedules::Cleanup(), GenerateIndex(), RemoveDeletedRecordings(), cFileTransfer::Stop(), and cCutter::Stop().

bool cThread::Active ( void  )

Checks whether the thread is still alive.

void cThread::Cancel ( int  WaitSeconds = 0)
protected

Cancels the thread by first setting 'running' to false, so that the Action() loop can finish in an orderly fashion and then waiting up to WaitSeconds seconds for the thread to actually end.

If the thread doesn't end by itself, it is killed. If WaitSeconds is -1, only 'running' is set to false and Cancel() returns immediately, without killing the thread.

Definition at line 318 of file thread.c.

References active, Active(), childThreadId, childTid, description, esyslog, running, and cCondWait::SleepMs().

Referenced by cRecorder::Activate(), cDvbPlayer::Activate(), cDevice::Detach(), cCiAdapter::~cCiAdapter(), cCopyingThread::~cCopyingThread(), cCuttingThread::~cCuttingThread(), cDvbCiAdapter::~cDvbCiAdapter(), cDvbSubtitleConverter::~cDvbSubtitleConverter(), cDvbTuner::~cDvbTuner(), cIndexFileGenerator::~cIndexFileGenerator(), cKbdRemote::~cKbdRemote(), cLircRemote::~cLircRemote(), cNonBlockingFileReader::~cNonBlockingFileReader(), cRcuRemote::~cRcuRemote(), cRecordings::~cRecordings(), cSectionHandler::~cSectionHandler(), ~cThread(), cTrueColorDemo::~cTrueColorDemo(), and cTSBuffer::~cTSBuffer().

void cThread::Cancel ( int  WaitSeconds = 0)
protected

Cancels the thread by first setting 'running' to false, so that the Action() loop can finish in an orderly fashion and then waiting up to WaitSeconds seconds for the thread to actually end.

If the thread doesn't end by itself, it is killed. If WaitSeconds is -1, only 'running' is set to false and Cancel() returns immediately, without killing the thread.

static tThreadId cThread::IsMainThread ( void  )
inlinestatic
static tThreadId cThread::IsMainThread ( void  )
inlinestatic

Definition at line 122 of file thread.h.

References mainThreadId, and ThreadId().

void cThread::Lock ( void  )
inlineprotected

Definition at line 91 of file thread.h.

References cMutex::Lock(), and mutex.

void cThread::Lock ( void  )
inlineprotected
bool cThread::Running ( void  )
inlineprotected

Returns false if a derived cThread object shall leave its Action() function.

Definition at line 98 of file thread.h.

References running.

bool cThread::Running ( void  )
inlineprotected
void cThread::SetDescription ( const char *  Description,
  ... 
)
void cThread::SetDescription ( const char *  Description,
  ... 
)
void cThread::SetIOPriority ( int  Priority)
protected
void cThread::SetIOPriority ( int  Priority)
protected
static void cThread::SetMainThreadId ( void  )
static
void cThread::SetMainThreadId ( void  )
static

Definition at line 341 of file thread.c.

References esyslog, mainThreadId, and ThreadId().

Referenced by main().

void cThread::SetPriority ( int  Priority)
protected
void cThread::SetPriority ( int  Priority)
protected
void bool cThread::Start ( void  )

Actually starts the thread.

If the thread is already running, nothing happens.

bool cThread::Start ( void  )
void * cThread::StartThread ( cThread Thread)
staticprivate

Definition at line 247 of file thread.c.

References Action(), active, childThreadId, description, dsyslog, esyslog, running, and ThreadId().

Referenced by Start().

static void* cThread::StartThread ( cThread Thread)
staticprivate
tThreadId cThread::ThreadId ( void  )
static
static tThreadId cThread::ThreadId ( void  )
static
void cThread::Unlock ( void  )
inlineprotected

Definition at line 92 of file thread.h.

References mutex, and cMutex::Unlock().

void cThread::Unlock ( void  )
inlineprotected

Friends And Related Function Documentation

cThreadLock
friend

Definition at line 78 of file include/vdr/thread.h.

Member Data Documentation

bool cThread::active
private

Definition at line 80 of file include/vdr/thread.h.

Referenced by Active(), Cancel(), cThread(), Start(), and StartThread().

tThreadId cThread::childThreadId
private

Definition at line 83 of file include/vdr/thread.h.

Referenced by Cancel(), cThread(), and StartThread().

pthread_t cThread::childTid
private

Definition at line 82 of file include/vdr/thread.h.

Referenced by Active(), Cancel(), cThread(), and Start().

char * cThread::description
private
static tThreadId cThread::mainThreadId = 0
staticprivate

Definition at line 86 of file include/vdr/thread.h.

Referenced by IsMainThread(), and SetMainThreadId().

cMutex cThread::mutex
private

Definition at line 84 of file include/vdr/thread.h.

Referenced by Lock(), and Unlock().

bool cThread::running
private

Definition at line 81 of file include/vdr/thread.h.

Referenced by Active(), Cancel(), cThread(), Running(), Start(), and StartThread().


The documentation for this class was generated from the following files: