LibreOffice Module vcl (master) 1
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
SvpSalYieldMutex Class Referencefinal

#include <svpinst.hxx>

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

Public Member Functions

 SvpSalYieldMutex ()
 
virtual ~SvpSalYieldMutex () override
 
virtual bool IsCurrentThread () const override
 
- Public Member Functions inherited from SalYieldMutex
 SalYieldMutex ()
 
virtual ~SalYieldMutex () override
 
virtual bool IsCurrentThread () const override
 
 SalYieldMutex ()
 
virtual ~SalYieldMutex () override
 
- Public Member Functions inherited from comphelper::SolarMutex
 SolarMutex ()
 
virtual ~SolarMutex ()
 
void SetBeforeReleaseHandler (const BeforeReleaseHandler &rLink)
 
void acquire (sal_uInt32 nLockCount=1)
 
sal_uInt32 release (bool bUnlockAll=false)
 
virtual bool tryToAcquire ()
 
virtual bool IsCurrentThread () const
 

Private Member Functions

virtual void doAcquire (sal_uInt32 nLockCount) override
 
virtual sal_uInt32 doRelease (bool bUnlockAll) override
 

Private Attributes

std::mutex m_FeedbackMutex
 
std::queue< bool > m_FeedbackPipe
 
std::condition_variable m_FeedbackCV
 
osl::Condition m_NonMainWaitingYieldCond
 
bool m_bNoYieldLock = false
 
std::mutex m_WakeUpMainMutex
 
std::condition_variable m_WakeUpMainCond
 
bool m_wakeUpMain = false
 
SvpRequest m_Request = SvpRequest::NONE
 

Friends

class SvpSalInstance
 

Additional Inherited Members

- Public Types inherited from comphelper::SolarMutex
typedef void(* BeforeReleaseHandler) ()
 
- Static Public Member Functions inherited from comphelper::SolarMutex
static SolarMutexget ()
 
virtual void doAcquire (sal_uInt32 nLockCount) override
 
virtual sal_uInt32 doRelease (bool bUnlockAll) override
 
virtual sal_uInt32 doRelease (bool bUnlockAll)
 
virtual void doAcquire (sal_uInt32 nLockCount)
 
- Protected Attributes inherited from comphelper::SolarMutex
osl::Mutex m_aMutex
 
sal_uInt32 m_nCount
 

Detailed Description

Definition at line 64 of file svpinst.hxx.

Constructor & Destructor Documentation

◆ SvpSalYieldMutex()

SvpSalYieldMutex::SvpSalYieldMutex ( )

◆ ~SvpSalYieldMutex()

virtual SvpSalYieldMutex::~SvpSalYieldMutex ( )
overridevirtual

Member Function Documentation

◆ doAcquire()

virtual void SvpSalYieldMutex::doAcquire ( sal_uInt32  nLockCount)
overrideprivatevirtual

Reimplemented from SalYieldMutex.

◆ doRelease()

virtual sal_uInt32 SvpSalYieldMutex::doRelease ( bool  bUnlockAll)
overrideprivatevirtual

Reimplemented from SalYieldMutex.

◆ IsCurrentThread()

virtual bool SvpSalYieldMutex::IsCurrentThread ( ) const
overridevirtual

Reimplemented from SalYieldMutex.

Friends And Related Function Documentation

◆ SvpSalInstance

friend class SvpSalInstance
friend

Definition at line 69 of file svpinst.hxx.

Member Data Documentation

◆ m_bNoYieldLock

bool SvpSalYieldMutex::m_bNoYieldLock = false
private

Definition at line 76 of file svpinst.hxx.

◆ m_FeedbackCV

std::condition_variable SvpSalYieldMutex::m_FeedbackCV
private

Definition at line 73 of file svpinst.hxx.

◆ m_FeedbackMutex

std::mutex SvpSalYieldMutex::m_FeedbackMutex
private

Definition at line 71 of file svpinst.hxx.

◆ m_FeedbackPipe

std::queue<bool> SvpSalYieldMutex::m_FeedbackPipe
private

Definition at line 72 of file svpinst.hxx.

◆ m_NonMainWaitingYieldCond

osl::Condition SvpSalYieldMutex::m_NonMainWaitingYieldCond
private

Definition at line 74 of file svpinst.hxx.

◆ m_Request

SvpRequest SvpSalYieldMutex::m_Request = SvpRequest::NONE
private

Definition at line 80 of file svpinst.hxx.

◆ m_wakeUpMain

bool SvpSalYieldMutex::m_wakeUpMain = false
private

Definition at line 79 of file svpinst.hxx.

◆ m_WakeUpMainCond

std::condition_variable SvpSalYieldMutex::m_WakeUpMainCond
private

Definition at line 78 of file svpinst.hxx.

◆ m_WakeUpMainMutex

std::mutex SvpSalYieldMutex::m_WakeUpMainMutex
private

Definition at line 77 of file svpinst.hxx.


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