#include <osdtypeteletext.h>
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 |
| OSDTypeTeletext * | m_parent |
| 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.
QMutex* OSDUpdateLocker::m_lock [private] |
Definition at line 116 of file osdtypeteletext.h.
Referenced by OSDUpdateLocker(), and ~OSDUpdateLocker().
OSDTypeTeletext* OSDUpdateLocker::m_parent [private] |
1.5.5