void UnsafeBridge::v_callOut_v(uno_EnvCallee * pCallee, va_list * pParam)
{
SAL_WARN_IF(m_count <= 0, "cppu.unsafebridge", "m_count is less than or equal to 0");
-- m_count;
pCallee(pParam);
++ m_count;
if (!m_threadId)
m_threadId = osl::Thread::getCurrentIdentifier();
}
void UnsafeBridge::v_enter()
{
m_mutex.acquire();
SAL_WARN_IF(m_count < 0, "cppu.unsafebridge", "m_count is less than 0");
if (m_count == 0)
m_threadId = osl::Thread::getCurrentIdentifier();
++ m_count;
}
void UnsafeBridge::v_leave()
{
SAL_WARN_IF(m_count <= 0, "cppu.unsafebridge", "m_count is less than or equal to 0");
-- m_count; if (!m_count)
m_threadId = 0;
m_mutex.release();
}
bool UnsafeBridge::v_isValid(OUString * pReason)
{ bool result = m_count > 0; if (!result)
{
*pReason = "not entered";
} else
{
result = m_threadId == osl::Thread::getCurrentIdentifier();
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.