20 #ifndef INCLUDED_COMPHELPER_SOLARMUTEX_HXX
21 #define INCLUDED_COMPHELPER_SOLARMUTEX_HXX
28 #include <osl/thread.h>
29 #include <osl/mutex.hxx>
48 typedef void (*BeforeReleaseHandler) ();
54 { m_aBeforeReleaseHandler = rLink; }
56 void acquire( sal_uInt32 nLockCount = 1 );
57 sal_uInt32 release(
bool bUnlockAll =
false );
59 virtual bool tryToAcquire();
62 virtual bool IsCurrentThread()
const;
68 virtual sal_uInt32 doRelease(
bool bUnlockAll );
69 virtual void doAcquire( sal_uInt32 nLockCount );
85 assert( nLockCount > 0 );
96 #endif // INCLUDED_COMPHELPER_SOLARMUTEX_HXX
BeforeReleaseHandler m_aBeforeReleaseHandler
void acquire(sal_uInt32 nLockCount=1)
sal_uInt32 release(bool bUnlockAll=false)
virtual void doAcquire(sal_uInt32 nLockCount)
std::atomic< oslThreadIdentifier > m_nThreadId
#define COMPHELPER_DLLPUBLIC
SolarMutex, needed for VCL's Application::GetSolarMutex().
virtual sal_uInt32 doRelease(bool bUnlockAll)
void SetBeforeReleaseHandler(const BeforeReleaseHandler &rLink)