OSDUpdateLocker Class Reference

#include <osdtypeteletext.h>

List of all members.


Detailed Description

Helper class to the OSDTypeTeletext.

This class is used to lock the m_lock semaphore when there is a chance that the locked code will result in the OSD::UpdateTeletext() function being called. It's purpose is to lock the semaphore and once the locked code has finished to check for a request to call OSD::UpdateTeletext(). If required, the m_lock is released and the required call made

This is to overcome the possible semaphore deadlock as follows:

   - Teletext data arrives -> locks m_lock
   - While the teletext data is being processed the XMV request an
     OSD update display
   - The OSD update display will lock the osdlock
   - The OSD update can results in the Teletext:Draw method being
     called and hence the OSD update is now waiting on m_lock being
     released to continue it's drawing process
   - If the processing of the teletext data result in the function
     OSD::UpdateTeletext being called, this function will try to
     get the osdlock.
   - This results in the classic semaphore deadlock and hence all
     OSD update cease.

Definition at line 109 of file osdtypeteletext.h.


Public Member Functions

 OSDUpdateLocker (QMutex *lock, OSDTypeTeletext *parent)
 ~OSDUpdateLocker (void)

Private Attributes

QMutex * m_lock
OSDTypeTeletextm_parent

Constructor & Destructor Documentation

OSDUpdateLocker::OSDUpdateLocker ( QMutex *  lock,
OSDTypeTeletext parent 
)

Definition at line 1281 of file osdtypeteletext.cpp.

OSDUpdateLocker::~OSDUpdateLocker ( void   ) 

Definition at line 1287 of file osdtypeteletext.cpp.


Member Data Documentation

QMutex* OSDUpdateLocker::m_lock [private]

Definition at line 116 of file osdtypeteletext.h.

Referenced by OSDUpdateLocker(), and ~OSDUpdateLocker().

Definition at line 117 of file osdtypeteletext.h.

Referenced by ~OSDUpdateLocker().


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

Generated on Sat Dec 18 05:16:09 2010 for MythTV by  doxygen 1.5.5