MythTV  master
Public Member Functions | Private Attributes | List of all members
HouseKeepingThread Class Reference

Thread used to perform queued HouseKeeper tasks. More...

#include <libmythbase/housekeeper.h>

Inheritance diagram for HouseKeepingThread:
[legend]
Collaboration diagram for HouseKeepingThread:
[legend]

Public Member Functions

 HouseKeepingThread (HouseKeeper *p)
 
 ~HouseKeepingThread () override=default
 
void run (void) override
 Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More...
 
void Discard (void)
 
bool isIdle (void) const
 
void Wake (void)
 
void Terminate (void)
 
- Public Member Functions inherited from MThread
 MThread (const QString &objectName)
 Standard constructor. More...
 
 MThread (const QString &objectName, QRunnable *runnable)
 Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More...
 
virtual ~MThread ()
 
 MThread (const MThread &)=delete
 
MThreadoperator= (const MThread &)=delete
 
void RunProlog (void)
 Sets up a thread, call this if you reimplement run(). More...
 
void RunEpilog (void)
 Cleans up a thread's resources, call this if you reimplement run(). More...
 
QThread * qthread (void)
 Returns the thread, this will always return the same pointer no matter how often you restart the thread. More...
 
void setObjectName (const QString &name)
 
QString objectName (void) const
 
void setPriority (QThread::Priority priority)
 
QThread::Priority priority (void) const
 
bool isFinished (void) const
 
bool isRunning (void) const
 
void setStackSize (uint stackSize)
 
uint stackSize (void) const
 
void exit (int retcode=0)
 Use this to exit from the thread if you are using a Qt event loop. More...
 
void start (QThread::Priority p=QThread::InheritPriority)
 Tell MThread to start running the thread in the near future. More...
 
void terminate (void)
 Kill a thread unsafely. More...
 
void quit (void)
 calls exit(0) More...
 
bool wait (std::chrono::milliseconds time=std::chrono::milliseconds::max())
 Wait for the MThread to exit, with a maximum timeout. More...
 

Private Attributes

bool m_idle { true }
 
bool m_keepRunning { true }
 
HouseKeeperm_parent { nullptr }
 
QMutex m_waitMutex
 
QWaitCondition m_waitCondition
 

Additional Inherited Members

- Static Public Member Functions inherited from MThread
static void ThreadSetup (const QString &name)
 This is to be called on startup in those few threads that haven't been ported to MThread. More...
 
static void ThreadCleanup (void)
 This is to be called on exit in those few threads that haven't been ported to MThread. More...
 
static void Cleanup (void)
 This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More...
 
static void GetAllThreadNames (QStringList &list)
 
static void GetAllRunningThreadNames (QStringList &list)
 
- Protected Member Functions inherited from MThread
int exec (void)
 Enters the qt event loop. call exit or quit to exit thread. More...
 
- Static Protected Member Functions inherited from MThread
static void setTerminationEnabled (bool enabled=true)
 
static void usleep (std::chrono::microseconds time)
 
template<typename R , typename P >
static std::enable_if_t< std::chrono::treat_as_floating_point< R >::value, void > usleep (std::chrono::duration< R, P > time)
 
- Protected Attributes inherited from MThread
MThreadInternalm_thread {nullptr}
 
QRunnable * m_runnable {nullptr}
 
bool m_prologExecuted {true}
 
bool m_epilogExecuted {true}
 

Detailed Description

Thread used to perform queued HouseKeeper tasks.

This class is a long-running thread that pulls tasks out of the HouseKeeper queue and runs them sequentially. It performs one last check of the task to make sure something else in the same scope has not pre-empted it, before running the task.

Definition at line 128 of file housekeeper.h.

Constructor & Destructor Documentation

◆ HouseKeepingThread()

HouseKeepingThread::HouseKeepingThread ( HouseKeeper p)
inlineexplicit

Definition at line 131 of file housekeeper.h.

◆ ~HouseKeepingThread()

HouseKeepingThread::~HouseKeepingThread ( )
overridedefault

Member Function Documentation

◆ run()

void HouseKeepingThread::run ( void  )
overridevirtual

Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.

Note
If you override this method you must call RunProlog before you do any work and RunEpilog before you exit the run method.

Reimplemented from MThread.

Definition at line 518 of file housekeeper.cpp.

◆ Discard()

void HouseKeepingThread::Discard ( void  )
inline

Definition at line 135 of file housekeeper.h.

◆ isIdle()

bool HouseKeepingThread::isIdle ( void  ) const
inline

Definition at line 136 of file housekeeper.h.

◆ Wake()

void HouseKeepingThread::Wake ( void  )
inline

Definition at line 137 of file housekeeper.h.

◆ Terminate()

void HouseKeepingThread::Terminate ( void  )

Member Data Documentation

◆ m_idle

bool HouseKeepingThread::m_idle { true }
private

Definition at line 142 of file housekeeper.h.

Referenced by isIdle(), and run().

◆ m_keepRunning

bool HouseKeepingThread::m_keepRunning { true }
private

Definition at line 143 of file housekeeper.h.

Referenced by Discard(), and run().

◆ m_parent

HouseKeeper* HouseKeepingThread::m_parent { nullptr }
private

Definition at line 144 of file housekeeper.h.

Referenced by run().

◆ m_waitMutex

QMutex HouseKeepingThread::m_waitMutex
private

Definition at line 145 of file housekeeper.h.

Referenced by run().

◆ m_waitCondition

QWaitCondition HouseKeepingThread::m_waitCondition
private

Definition at line 146 of file housekeeper.h.

Referenced by run(), and Wake().


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