in Include/rwlock.h [34:61]
HRESULT Init()
{
HRESULT hr = S_OK;
if (FALSE == m_bInited)
{
m_rwLock.fWriterWaiting = FALSE;
m_rwLock.LockCount = 0;
if ( !InitializeCriticalSectionAndSpinCount( &m_rwLock.critsec, 0 ))
{
DWORD dwError = GetLastError();
hr = HRESULT_FROM_WIN32(dwError);
return hr;
}
m_rwLock.ReadersDoneEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
if( NULL == m_rwLock.ReadersDoneEvent )
{
DWORD dwError = GetLastError();
hr = HRESULT_FROM_WIN32(dwError);
DeleteCriticalSection(&m_rwLock.critsec);
return hr;
}
m_bInited = TRUE;
}
return hr;
}